読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

配列の要素数を揃えたいときの詰めるループ

PHP

スポンサードリンク

配列の要素するがバラバラだった時で、それぞれの配列を一番要素数が多い数に合わせたい場合


そんな感じの処理を書いてみたのでメモ


// こんな感じで、$arrayにはそれぞれ違う要素が入っている。(今回は適当に1 ... から順番)
$array = array(1 => array(1, 2, 3, 4), ・・・・);
$roop_count = 0;
foreach ($array as $month) {
	$count[$roop_count++] = count($testArray[$month]);
}

// 全体から最大のデータを探す
// 適当に最大の値を定義
$max = $count[0];
$count_max = count($count);
for ($i = 0; $i < $count_max; $i++) {
	// 前の値(&最初の値)と比較して、大きいなら入れなおす
	if ($max < $count[$i]) {
		$max = $count[$i];
	}
}

// 行数を制御
foreach ($array as $month) {
	$count_2 = count($testArray[$month]);
	if ($count_2 < $cnt_max) {
		for ($j = 1; $j <= $cnt_max - $count_2; $j++) {
			$testArray[$month][] = array();
		}
	}
}


2回同じ配列をループさせないといけないのが心配だなぁ。