JavaScriptを有効にしてください

【PHP】配列を扱う時にとても有用な array_column

 ·  ☕ 2 分で読めます

配列を扱う時にとても有用な array_column

PHP で配列を扱う時にとても有用な関数 array_column をご紹介します。
PHPマニュアル上でとても有用な例まで載っているのですがあまりこのような使われ方をせずに forforeach を使用しているのを多々見るので今回記事化しました。
array_column を使用すれば例えばセレクトボックスに入れるデータなど一括で簡単に作れますので作れます。

配列の中の連想配列から指定のキーを抜き出して配列する

配列の中の連想配列から指定のキーを抜き出して配列にします。
PHP: array_column - Manual 例1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
// データベースから返ってきたレコードセットの例
$records = [
    [
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ],
    [
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ],
    [
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ],
    [
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    ]
];

$first_names = array_column($records, 'first_name');
print_r($first_names);

出力結果

1
2
3
4
5
6
7
Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

配列の中の連想配列から指定した複数のキーを抜き出して配列する

配列の中の連想配列から指定した複数のキーを抜き出して配列します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
// データベースから返ってきたレコードセットの例
$records = [
    [
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ],
    [
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ],
    [
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ],
    [
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    ]
];

$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);

出力結果

1
2
3
4
5
6
7
Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)

オブジェクトの public プロパティから指定のプロパティを抜き出して配列にする

オブジェクトの public プロパティから指定のプロパティを抜き出して配列にします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?php

class User
{
    public $username;

    public function __construct(string $username)
    {
        $this->username = $username;
    }
}

$users = [
    new User('user 1'),
    new User('user 2'),
    new User('user 3'),
];

print_r(array_column($users, 'username'));

出力結果

1
2
3
4
5
6
Array
(
    [0] => user 1
    [1] => user 2
    [2] => user 3
)

オブジェクトの public プロパティから指定のプロパティを抜き出して配列にする

オブジェクトの public プロパティから指定のプロパティを抜き出して配列にします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php

class Person
{
    private $name;

    public function __construct(string $name)
    {
        $this->name = $name;
    }

    public function __get($prop)
    {
        return $this->$prop;
    }

    public function __isset($prop) : bool
    {
        return isset($this->$prop);
    }
}

$people = [
    new Person('Fred'),
    new Person('Jane'),
    new Person('John'),
];

print_r(array_column($people, 'name'));

出力結果

1
2
3
4
5
6
Array
(
    [0] => Fred
    [1] => Jane
    [2] => John
)
共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer