array_column関数は配列から指定したkeyのデータを取り出します。第一引数に配列、第二引数にvalueとして取り出す配列のkey、第三引数にkeyとして取り出す配列のkeyを指定します。
array_column(配列, 配列のkey, 配列のkey);
多次元配列から’キャベツ’だけのデータを取り出します。
<?php
$list = array(
'A商店' => array(
'トマト' => 100,
'キャベツ' => 120,
'ピーマン' => 80,
'レタス' => 90
),
'B商店' => array(
'トマト' => 110,
'キャベツ' => 130,
'ピーマン' => 90,
'レタス' => 100
),
'C商店' => array(
'トマト' => 90,
'キャベツ' => 110,
'ピーマン' => 70,
'レタス' => 80
)
);
$result = array_column($list, 'キャベツ');
var_dump($result);
?>
実行結果は以下の通りです。keyは0から始まる添字、valueは’キャベツ’の値です。
array(3) {
[0]=>
int(120)
[1]=>
int(130)
[2]=>
int(110)
}
次に多次元配列を一部修正して、第三引数に’店名’を指定します。
<?php
$list = array(
array(
'店名' => 'A商店',
'トマト' => 100,
'キャベツ' => 120,
'ピーマン' => 80,
'レタス' => 90
),
array(
'店名' => 'B商店',
'トマト' => 110,
'キャベツ' => 130,
'ピーマン' => 90,
'レタス' => 100
),
array(
'店名' => 'C商店',
'トマト' => 90,
'キャベツ' => 110,
'ピーマン' => 70,
'レタス' => 80
)
);
$result = array_column($list, 'キャベツ', '店名');
var_dump($result);
?>
実行結果は以下の通りです。keyは’店名’の値、valueは’キャベツ’の値です。
array(3) {
["A商店"]=>
int(120)
["B商店"]=>
int(130)
["C商店"]=>
int(110)
}
