phpのforeachの全データを取得するのに手間取ったので。
#公式サイトより
サイトはここです。
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr は array(2, 4, 6, 8) となります
unset($value); // 最後の要素への参照を解除します
?>
#使ってみた
EloquentクラスAccount
を使ってテーブルから値を取得。
##最後のデータしか表示されない・・・。
$accounts = Account::all();
foreach ($accounts as $account) {
$name = $account->name;
}
dd($name);
これで返ってきたのは以下の値。
"たけだ"
7つある全データのうちの最後だけ。
理由は foreachを回すたびに$nameが上書きされるから。
##配列にする
そこで、一つ終わるたびに配列に突っ込むようにする。
- 配列をつくる
- 配列に突っ込む
$accounts = Account::all();
$names = [];
foreach ($accounts as $account) {
$names[] = $account->name;
}
dd($names);
以下が返ってきた値。
array:7 [▼
0 => "やまだ"
1 => "すずき"
2 => "まえだ"
3 => "やました"
4 => "たなか"
5 => "くぼ"
6 => "たけだ"
]