便利だなと思った連想配列の関数をまとめてみました。
自分の備忘録的な感じで残しておきます。
良かったら参考にしてください。
array_column
連想配列から特定の要素のみを取り出します。
第1引数に配列、第2引数に取り出したいキー名を指定します。
<?php
$row = [
['id' => 1, 'name' => '久保', 'hobby' => 'サッカー'],
['id' => 2, 'name' => '佐藤', 'hobby' => '野球'],
['id' => 3, 'name' => '山田', 'hobby' => '料理'],
];
var_dump(array_column($row, 'name'));
// array(3) {
// [0]=>
// string(6) "久保"
// [1]=>
// string(6) "佐藤"
// [2]=>
// string(6) "山田"
// }
?>
加えて第3引数を指定すると、あるフィールドをキー、あるフィールドを値にした連想配列を作成することができます。
<?php
$row = [
['id' => 1, 'name' => '久保', 'hobby' => 'サッカー'],
['id' => 2, 'name' => '佐藤', 'hobby' => '野球'],
['id' => 3, 'name' => '山田', 'hobby' => '料理'],
];
var_dump(array_column($row, 'name', 'hobby'));
// array(3) {
// ["サッカー"]=>
// string(6) "久保"
// ["野球"]=>
// string(6) "佐藤"
// ["料理"]=>
// string(6) "山田"
// }
?>
array_keys
連想配列からキー要素のみ取り出します。
<?php
$row = [
['id' => 1, 'name' => '久保', 'hobby' => 'サッカー']
];
var_dump(array_keys($row));
// array(3) {
// [0]=>
// string(2) "id"
// [1]=>
// string(4) "name"
// [2]=>
// string(5) "hobby"
// }
?>
array_search
値からキーを取得します。
<?php
$row = [
'001' => '久保',
'002' => '佐藤',
'003' => '山田'
];
var_dump(array_search('久保', $row));
// string(3) "001"
?>
array_combine
2つの配列の結合して連想配列を作成します。
第1引数の配列の値がキーになり、第2引数の配列の値がバリュー(値)になります。
<?php
$ids = ['001', '002', '003'];
$names = ['久保', '佐藤', '山田'];
var_dump(array_combine($ids, $names));
// array(3) {
// ["001"]=>
// string(6) "久保"
// ["002"]=>
// string(6) "佐藤"
// ["003"]=>
// string(6) "山田"
// }
?>
array_intersect_key
複数の配列の中の共通のキー名を取得します。
返り値の配列は第1引数に指定した配列の要素で構成されています。
<?php
$row1 = [
'id' => 1, 'name' => '久保', 'hobby' => 'サッカー', 'birthday' => '2021-06-04'
];
$row2 = [
'id' => 1, 'name' => '加藤', 'hobby' => 'テニス', 'birthplace' => '日本'
];
var_dump(array_intersect_key($row1, $row2));
// array(3) {
// ["id"]=>
// int(1)
// ["name"]=>
// string(6) "久保"
// ["hobby"]=>
// string(12) "サッカー"
// }
?>