phpでの多次元配列の操作に関しての質問です。
Array
(
[01] => Array
(
[-1] => 0
[0] => 田中
[1] => 北海道
)
[02] => Array
(
[-1] => 1
[0] => 鈴木
[1] => 青森
)
[03] => Array
(
[-1] => 2
[0] => 佐藤
[1] => 秋田
)
)
データベースから呼び出した情報を上記のような配列にして
最初の配列ごとに(01などのこと)表示するために
while ($row = mysqli_fetch_array($data)){
$id = $row['id'];
$item = $row['item'];
$name = $row['name'];
$kensaku[$id][$item] = $name;
foreach($kensaku as $id => $item){
foreach($item as $id2 => $val){
echo $id2.":".$val;
}
}
}
https://gist.github.com/e263e35f49058f7d8fb2
このようにやったのですが
結果は
-1の部分が羅列されるのみで思ったようにいきません
このような場合どうすればよいのでしょうか?
紹介だけなどは除外お願いします。
いまいちなにをどうしたいのかわかりません。
$rowの内容はどうなっていて、どのようにしたいのでしょうか。
mysqli_fetch_arrayの第二引数にMYSQLI_ASSOCを入れて結果をみて、今一度、作りたい配列を見直してみてはどうでしょう。
<?
function pr($var) {
echo '<pre>'; print_r($var); echo '</pre>';
}
while ($row = mysqli_fetch_array($data, MYSQLI_ASSOC)){
pr($row);
}
<?
function pr($var) {
echo '<pre>'; print_r($var); echo '</pre>';
}
while ($row = mysqli_fetch_array($data)){
$id = $row['id'];
$item = $row['item'];
$name = $row['name'];
$kensaku[$id][$item] = $name;
}
pr($kensaku);
これで確認すると希望する配列にはなっていないのですか?