[PHP]便利な配列操作関数メモ_抽出編

// 操作対象の配列
$list1 = ['a' => 'aa', 'b' => 'bb', 'c' => 'cc', 'd' => 'dd'];
$list2 = ['e' => 'aa', 'f' => 'ff', 'g' => 'gg', 'h' => 'dd'];

$twoDList = ['a' => ['x' => 11, 'y' => 'aa'],
            'b' => ['x' => 22, 'y' => 'bb'],
            'c' => ['x' => 33, 'y' => 'cc'],];

array_column
2次元配列の値の配列から指定のキーの値を抽出する。
第3引数に値の配列のキーを指定すると、抽出する値のキーに設定される。

$result = array_column($twoDList, 'y');
$result2 = array_column($twoDList, 'y', 'x');
print(var_export($result, true));

/*
array (
 0 => 'aa',
 1 => 'bb',
 2 => 'cc',
)
*/

print(var_export($result2, true));
/*
array (
 11 => 'aa',
 22 => 'bb',
 33 => 'cc',
)
*/

array_intersect
第1引数に指定した配列の値の中から、第2引数以降に指定した引数の配列に含まれるものを抽出する。

$result = array_intersect($list1, $list2);

print(var_export($result, true));
/*
array (
 'a' => 'aa',
 'd' => 'dd',
)
*/

array_diff
第1引数の配列の値の中から、第2引数の配列の値に存在しないものを返す。

$result = array_diff($list1, $list2);

print(var_export($result, true));
/*
array (
 'b' => 'bb',
 'c' => 'cc',
)
*/

array_chunk
配列を指定したサイズで分割する。分割後の最後尾の配列はサイズが不足することもある。

$result = array_chunk($list1, 2);

print(var_export($result, true));
/*
array (
 0 => 
 array (
   0 => 'aa',
   1 => 'bb',
 ),
 1 => 
 array (
   0 => 'cc',
   1 => 'dd',
 ),
)

[reference]

array_column | PHP.net
array_intersect | PHP.net
array_diff | PHP.net
array_chunk | PHP.net

この記事が気に入ったらサポートをしてみませんか?