SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Laravelのヘルパ関数と

Collection
20180322@ARCANA Meetup#35
株式会社スタジオ・アルカナ�深澤 ひかり
Laravel
• このスライドで使用している Laravel のバージョンは、5.5
です。
ヘルパ関数
• Laravelが標準で用意しているグローバル関数。
• みんながよくつかうconfig()や、old()もヘルパ関数。
• ヘルパ関数を使うと Laravel に依存することになるので、

その点を理解してから使う。
Array
array_pluck
$array = [
[
'id' => 1,
'name' => '鈴木太郎',
'age' => 20
],
[
'id' => 2,
'name' => '田中花子',
'age' => 19
]
];
// id だけ取り出したい
// foreach だと
$result = [];
foreach ($array as $value) {
$result[] = $value['id'];
}
// array_pluck だと
$result = array_pluck($array, ‘id’);
// 結果:�[1, 2]
// おまけ:id をキーに、値を name にしたい
$result = array_pluck($array, 'name', ‘id');
// 結果:�[1 => '鈴木太郎', 2 => '田中花子']
array_where
$array = [
[
'id' => 1,
'name' => '鈴木太郎',
'age' => 20
],
[
'id' => 2,
'name' => '田中花子',
'age' => 19
]
];
// 20歳以下だけ取り出したい
// foreach だと
foreach ($array as $value) {
if ($value['age'] < 20) {
$result[] = $value;
}
}
// array_where だと
$result = array_where($array, function ($value) {
return $value['age'] < 20;
});
// 結果:
// [[‘id’ => 2,'name' => '田中花子','age' => 19]]
Collect
// collect関数は、指定した値からコレクションインスタンスを
// 生成します。
$collection = collect(['1', '2']);
Collection
https://readouble.com/laravel/5.5/ja/collections.html
pluck
Collection {#571 ▼
#items: array:3 [▼
0 => array:3 [▼
"id" => 1
"name" => "鈴木太郎"
"age" => 20
]
1 => array:3 [▼
"id" => 2
"name" => "田中花子"
"age" => 19
]
2 => array:3 [▼
"id" => 3
"name" => "佐藤五郎"
"age" => 19
]
]
}
$collection->pluck(‘name’, ‘id’);
Collection {#567 ▼
#items: array:2 [▼
1 => "鈴木太郎"
2 => "田中花子"
]
}
where
Collection {#571 ▼
#items: array:2 [▼
0 => array:3 [▼
"id" => 1
"name" => "鈴木太郎"
"age" => 20
]
1 => array:3 [▼
"id" => 2
"name" => "田中花子"
"age" => 19
]
]
}
$collection->where('age', '<', ’20');
Collection {#573 ▼
#items: array:1 [▼
1 => array:3 [▼
"id" => 2
"name" => "田中花子"
"age" => 19
]
]
}
filter
Collection {#571 ▼
#items: array:2 [▼
0 => array:3 [▼
"id" => 1
"name" => "鈴木太郎"
"age" => 20
]
1 => array:3 [▼
"id" => 2
"name" => "田中花子"
"age" => 19
]
]
}
$collection->filter(function ($value, $key) {
return $value['age'] < 20;
});
Collection {#573 ▼
#items: array:1 [▼
1 => array:3 [▼
"id" => 2
"name" => "田中花子"
"age" => 19
]
]
}
https://readouble.com/laravel/5.5/ja/collections.html
まとめ
• 車輪の再発明を防ごう。
• 使うときは、デメリットも把握した上で使用する。

(プロジェクトによっては確認したほうがよいのかも?)

Weitere ähnliche Inhalte

Mehr von Hikari Fukasawa

みんなでおばけになる #mlkcca
みんなでおばけになる #mlkccaみんなでおばけになる #mlkcca
みんなでおばけになる #mlkccaHikari Fukasawa
 
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudyPHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudyHikari Fukasawa
 
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015Hikari Fukasawa
 
【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudy
【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudy【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudy
【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudyHikari Fukasawa
 
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
Hello Girl's World!!@女子エンジニアLT会 #dotsgirlsHello Girl's World!!@女子エンジニアLT会 #dotsgirls
Hello Girl's World!!@女子エンジニアLT会 #dotsgirlsHikari Fukasawa
 
PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014
PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014
PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014Hikari Fukasawa
 
スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会
スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会
スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会Hikari Fukasawa
 

Mehr von Hikari Fukasawa (7)

みんなでおばけになる #mlkcca
みんなでおばけになる #mlkccaみんなでおばけになる #mlkcca
みんなでおばけになる #mlkcca
 
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudyPHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
 
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
 
【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudy
【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudy【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudy
【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudy
 
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
Hello Girl's World!!@女子エンジニアLT会 #dotsgirlsHello Girl's World!!@女子エンジニアLT会 #dotsgirls
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
 
PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014
PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014
PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014
 
スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会
スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会
スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会
 

Kürzlich hochgeladen

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Kürzlich hochgeladen (10)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Laravelのヘルパ関数とCollection #sa_study