0
0

PHP連想配列操作まとめ

Posted at

便利だなと思った連想配列の関数をまとめてみました。
自分の備忘録的な感じで残しておきます。
良かったら参考にしてください。

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) "サッカー"
// }

?>

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