次の多次元配列 (MySQL またはサービスから取得) があると仮定します。
array(
array(
[id] => xxx,
[name] => blah
),
array(
[id] => yyy,
[name] => blahblah
),
array(
[id] => zzz,
[name] => blahblahblah
),
)
1つの配列をid
「内蔵「php 関数呼び出しですか? それとも 1 行のコードですか?
従来のループと値の取得は知っていますが、これは必要ありません:
foreach($users as $user) {
$ids[] = $user['id'];
}
print_r($ids);
もしかしたらarray_map()
、call_user_func_array()
魔法をかけられる人もいるかもしれません。
ベストアンサー1
PHP 5.5以降では、array_column
:
$ids = array_column($users, 'id');
これは、最近のプロジェクトでは推奨されるオプションです。ただし、PHP <5.5 をサポートする必要がある場合は、次の代替手段があります。
PHP 5.3以降では、array_map
匿名関数を使用すると、次のようになります。
$ids = array_map(function ($ar) {return $ar['id'];}, $users);
(技術的にはPHP 4.0.6以降)以前では、匿名関数を作成する必要があります。create_function
その代わり:
$ids = array_map(create_function('$ar', 'return $ar["id"];'), $users);