ボム君.com

Masa's blog

今まで学んできたITスキルを主に。

PHP: 配列を一列ずつ出力させる方法

配列は一般的に一行ずつ出力しますが、

時には一列ずつ出力することだってあります。

方法は二つあります。

PHP関数:array_column

プログラム

<?php
$a = array(
  array(
    'id' => 5698,
    'first_name' => 'Bill',
    'last_name' => 'Gates',
  ),
  array(
    'id' => 4767,
    'first_name' => 'Steve',
    'last_name' => 'Jobs',
  )
  array(
    'id' => 3809,
    'first_name' => 'Mark',
    'last_name' => 'Zuckerberg',
  )
);

$last_names = array_column($a, 'last_name');
print_r($last_names);
?>

出力

Array
(
  [0] => Gates
  [1] => Jobs
  [2] => Zuckerberg
)

このように配列が 「キー => 値」 という形のフォーマットであれば、array_column使って、簡単に出力させることができます。

簡単なアルゴリズムで出力

キーがなく、ただインデックスで割り当てられている配列の場合は上記の方法は使えません。

<?php
$a = array(array(1,2,3),array(4,5,6)); //最初の配列
$new_a = array(); //出力用の配列
$column = count($a[0]); //列の数

//まず最初の配列全てを一行の配列にする
foreach($a as $a_items){
	foreach($a_items as $a_items_item){
		array_push($new_a, $a_items_item);
	}
}
//一行だけの配列に、「%」演算子で列ごとに分ける。
for($i=0;$i<count($new_a);$i++){
	$temp[$i%$column] .= $new_a[$i];
}
print_r($temp);
?>

出力

Array ( [0] => 14 [1] => 25 [2] => 36 )