PHPに関する質問です。
PHPに関する質問です。
データベースからfetchしたデータを
10件づつとりだしグループ化して、最後の残りが8件以下の場合は、各グループの配列の先頭に加えるという処理を行う際に、このような記述をしているのですが、
$data = array(); // 保存する配列
$ct1 = 0;
$ct2 = 0;
while($row = $res->fetch(PDO::FETCH_NUM)) {
if ($ct2 === 10) {
$ct1++;
$ct2 = 0;
}
if ($ct2 === 0) { $data[$ct1] = array(); }
$data[$ct1][] = $row;
$ct2++;
}
if (count($data[$ct1]) < 8) {
$arr = array_pop($data);
$x = floor(count($arr) / count($data)); // 各要素に割り当てる数
for ($i = 0; $i < count($data); $i++) {
for ($j = 0; $j < $x; $j++) {
array_push($data[$i], array_pop($arr));
}
}
$t = 0;
while (count($arr) > 0) { // 最後のあまりを先頭に追加
array_push($data[$t], array_pop($arr));
$t++;
}
}
この処理だと、生成された配列が3次元になってしまいます。
Array ( [0] => Array ( [0] => Array ( [0] => あ ) [1] => Array ( [0] => あ) [2] => Array ( [0] => あ) [3] => Array ( [0] => あ) [4] => Array ( [0] => あ) [5] => Array ( [0] => あ ) [6] => Array ( [0] => あ ) [7] => Array ( [0] => あ) [8] => Array ( [0] => あ ) [9] => Array ( [0] => あ ) [10] => Array ( [0] => あ) ) [1] => Array ( [0] => Array ( [0] => あ) [1] => Array ( [0] => あ) [2] => Array ( [0] =>あ ) [3] => Array ( [0] => あ ) [4] => Array ( [0] => あ ) [5] => Array ( [0] => あ ) [6] => Array ( [0] => あ) [7] => Array ( [0] => あ ) [8] => Array ( [0] => あ ) [9] => Array ( [0] => あ ) [10] => Array ( [0] => あ ) ) [2] => Array ( [0] => Array ( [0] => あ ) [1] => Array ( [0] => あ) [2] => Array ( [0] => あ ) [3] => Array ( [0] => あ ) [4] => Array ( [0] => あ) [5] => Array ( [0] => あ ) [6] => Array ( [0] => あ ) [7] => Array ( [0] => あ ) [8] => Array ( [0] => あ ) [9] => Array ( [0] => あ) [10] => Array ( [0] => あ ) ) [3] => Array ( [0] => Array ( [0] => あ ) [1] => Array ( [0] => あ ) [2] => Array ( [0] => あ ) [3] => Array ( [0] => あ ) [4] => Array ( [0] => あ ) [5] => Array ( [0] => あ) [6] => Array ( [0] => あ ) [7] => Array ( [0] => あ ) [8] => Array ( [0] => あ ) [9] => Array ( [0] => あ) ) )
これを
array([0]=>array(あ,あ,あ,あ,あ,あ,あ)[1]=>array(あ,あ,あ,あ,あ,あ,あ))
のように2次元で取り出すには、どのように行えばいいでしょうか。
この後の処理としては、
$key = 'a';
array_search($key,$data)
のようにキーを取得したいと考えています。
宜しくお願いします。
お礼
ありがとうございます。 カウントはあきらめようかと思ってます。 ※そもそもカウントは必要ないかなと。