[Laravel]連想配列から特定のキーだけ抽出する

仕事でレビューしていた時に見かけたメソッド

よく使いそうなのでメモ。

ソース


$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);

$result = array_column($records, 'id');
print_r($result);

結果

Array
(
    [0] => 2135
    [1] => 3245
    [2] => 5342
    [3] => 5623
)

解説

array_columnメソッドが肝。

array_column

入力配列から単一のカラムの値を返すメソッド。

今回の例では、連想配列「records」からidのみを抜き出している

職場だと、

 array_values(array_column($records, 'id'));

みたいな感じで、array_valuesが入ってたけど、、、いらないなぁ。。

指摘すればよかった。。orz

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です