array_column関数の使い方

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)
}
タイトルとURLをコピーしました