0
0

More than 1 year has passed since last update.

array_columnまとめ

Posted at

はじめに

業務でarray_columnを使用し、めちゃくちゃ便利な関数で今後も多く使用するだろうと思いまとめてみました。
自分の振り返りのため、皆さんの参考になれば何よりです。

第一引数に配列、第二引数に取り出す要素のキー名を指定するパターン

下記の例だと、idだけの配列が作成されます。

<?php
$arr = [
    ['id' => 1, 'name' => 'joy', 'hoby' => 'soccer'],
    ['id' => 2, 'name' => 'mike', 'hoby' => 'baseball'],
    ['id' => 3, 'name' => 'taro', 'hoby' => 'tennis'],
    ['id' => 4, 'name' => 'hana', 'hoby' => 'tabletennis'],
    ['id' => 5, 'name' => 'kim', 'hoby' => 'basketball']
];

var_export(array_column($arr, 'id'));

// 結果
// array (
// 0 => 1,
//  1 => 2,
//  2 => 3,
//  3 => 4,
//  4 => 5,
// )

下記の例だと、nameだけの配列が作成されます。

$arr = [
    ['id' => 1, 'name' => 'joy', 'hoby' => 'soccer'],
    ['id' => 2, 'name' => 'mike', 'hoby' => 'baseball'],
    ['id' => 3, 'name' => 'taro', 'hoby' => 'tennis'],
    ['id' => 4, 'name' => 'hana', 'hoby' => 'tabletennis'],
    ['id' => 5, 'name' => 'kim', 'hoby' => 'basketball']
];

var_export(array_column($arr, 'name'));

// 結果
// array (
//  0 => 'joy',
//  1 => 'mike',
//  2 => 'taro',
//  3 => 'hana',
//  4 => 'kim',
// )

第三引数を指定したパターン

第三引数を指定にすると、その要素を結果の連想配列のキーにできます。

$arr = [
    ['id' => 1, 'name' => 'joy', 'hoby' => 'soccer'],
    ['id' => 2, 'name' => 'mike', 'hoby' => 'baseball'],
    ['id' => 3, 'name' => 'taro', 'hoby' => 'tennis'],
    ['id' => 4, 'name' => 'hana', 'hoby' => 'tabletennis'],
    ['id' => 5, 'name' => 'kim', 'hoby' => 'basketball']
];

var_export(array_column($arr, 'name', 'id'));

// 結果
// array (
//  1 => 'joy',
//  2 => 'mike',
//  3 => 'taro',
//  4 => 'hana',
//  5 => 'kim',
// )

第二引数にnullを指定したパターン

第二引数にnullを指定すると、配列をそのまま返します。それだけだと意味がありませんが、第3引数でキー名を指定すれば、その値を各要素のキー名として設定できます。

$arr = [
    ['id' => 1, 'name' => 'joy', 'hoby' => 'soccer'],
    ['id' => 2, 'name' => 'mike', 'hoby' => 'baseball'],
    ['id' => 3, 'name' => 'taro', 'hoby' => 'tennis'],
    ['id' => 4, 'name' => 'hana', 'hoby' => 'tabletennis'],
    ['id' => 5, 'name' => 'kim', 'hoby' => 'basketball']
];

var_export(array_column($arr, null, 'id'));

// 結果
// array (
//  1 => 
//  array (
//    'id' => 1,
//    'name' => 'joy',
//    'hoby' => 'soccer',
//  ),
//  2 => 
//  array (
//    'id' => 2,
//    'name' => 'mike',
//    'hoby' => 'baseball',
//  ),
//  3 => 
//  array (
//    'id' => 3,
//    'name' => 'taro',
//    'hoby' => 'tennis',
//  ),
//  4 => 
//  array (
//    'id' => 4,
//    'name' => 'hana',
//    'hoby' => 'tabletennis',
//  ),
//  5 => 
//  array (
//    'id' => 5,
//    'name' => 'kim',
//    'hoby' => 'basketball',
//  ),
// )
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0