この記事には広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
コレクション配列の中身の置換
キー無しコレクション配列
php
$collection = collect([[1, 2, null, 4, null, 6], [1, 2, null, 4, null, 6]]);
$collection = $collection->map(function ($array) {
return collect($array)->map(function ($item) {
return $item ?? 0;
})->all();
});
このコードでは、まずcollectメソッドでコレクション配列を作成し、それからmapメソッドを使用して各配列内の要素を処理しています。内側のmapメソッドは各配列内の要素を処理し、nullを0に置換しています。
キーありコレクション配列
php
$collection = collect([
[
"id" => 1,
"name" => "hogehoge",
],
[
"id" => 1,
"name" => null,
]
]);
$collection = $collection->map(function ($item) {
return collect($item)->map(function ($value, $key) {
return is_null($value) ? 'gitigeek' : $value;
})->all();
});
特定のキーのみを対象とする
php
$collection = collect([
[
"id" => 1,
"name" => "hogehoge",
],
[
"id" => 1,
"name" => null,
]
]);
$collection = $collection->map(function ($item) {
if (!$item['name']) {
$item['name'] = 'gitigeek';
}
return $item;
});
単一のコレクションの置換
コレクションの配列ではなく、単一のコレクションの場合はシンプルです。
次のいずれかの方法を使用して、Laravelのコレクション内のnull値を置換することができます。
サンプルではNULLを0に置換します。
mapメソッドを使用する方法
php
$collection = collect([1, 2, null, 4, null, 6]);
$collection = $collection->map(function ($item) {
return $item ?? 0;
});
この例では、mapメソッドを使用してコレクション内の各要素を処理し、null値を0に置換しています。
filterとmapメソッドの組み合わせ
php
$collection = collect([1, 2, null, 4, null, 6]);
$collection = $collection->filter()->map(function ($item) {
return $item ?? 0;
});
この例では、filterメソッドを使用してnull以外の要素を抽出し、その後mapメソッドでnullを0に置換しています。
コレクションのeachメソッド:
php
$collection = collect([1, 2, null, 4, null, 6]);
$collection->each(function (&$item) {
$item = $item ?? 0;
});
ここでは、eachメソッドを使用して各要素を処理し、nullを0に置換しています。注意すべき点は、コールバック関数内で引数を参照渡しすることです(&$item)。