[PHP-users 33411] Re: 多次元配列の扱い方について教えて下さい

Naoya Harasawa harasawa @ gust.jp
2008年 3月 22日 (土) 21:47:25 JST


> while(list($key, $value) = each($MENU)){
>   while(list($key2,$valu2) = each($value)){
>     $name = $value['name'];
>     $url = $value['url'];
>     $no = $value['no'];
>   print "$name□$url □$no□";

ここの$valu2や$valueの使い方や
printの際の区切りのためでないとおもいます

<?php
$MENU = array();
$MENU[0][0]['name'] = '加藤';
$MENU[0][0]['url'] = '大阪';
$MENU[0][0]['no'] = '1';
$MENU[0][1]['name'] = '佐藤';
$MENU[0][1]['url'] = '滋賀';
$MENU[0][1]['no'] = '2';
$MENU[0][2]['name'] = '近藤';
$MENU[0][2]['url'] = '京都';
$MENU[0][0]['no'] = '6';
$MENU[1][0]['name'] = '田中';
$MENU[1][0]['url'] = '千葉';
$MENU[0][0]['no'] = '2';
$MENU[1][1]['name'] = '松本';
$MENU[1][1]['url'] = '船場';
$MENU[0][1]['no'] = '4';
$MENU[1][2]['name'] = '藤木';
$MENU[1][2]['url'] = '幕張';
$MENU[0][2]['no'] = '7';
$MENU[1][3]['name'] = '田村';
$MENU[1][3]['url'] = '東京';
$MENU[0][3]['no'] = '5';
while(list($key, $value) = each($MENU)){
 while(list($key2,$value2) = each($value)){
    $name = $value2['name'];
    $url = $value2['url'];
    $no = $value2['no'];
  print "{$name}□{$url}□{$no}□";
}
print "<br>";
}

こうすると意図したものが出てくると思います。

Yumemisou さんは書きました:
> いつもお世話になっております。
> 
> 二次元までの配列なら、なんとかわかるようになってきたのですが、
> それ以上の配列の扱い方がわかりません。
> どうかご指導よろしくお願い申し上げます。
> 
> たとえば、二次元で下のような配列があった場合
> $MENU = array();
> $MENU[0]['name'] = '加藤';
> $MENU[0]['url'] = '大阪';
> $MENU[1]['name'] = '佐藤';
> $MENU[1]['url'] = '滋賀';
> $MENU[2]['name'] = '近藤';
> $MENU[2]['url'] = '京都';
> 
> while(list($key, $value) = each($MENU)){
>     $name = $value['name'];
>     $url = $value['url'];
> 
> 上記while文で表示できる事はなんとかわかったのですが、
> これが
> $MENU = array();
> $MENU[0][0]['name'] = '加藤';
> $MENU[0][0]['url'] = '大阪';
> $MENU[0][0]['no] = '1';
> $MENU[0][1]['name'] = '佐藤';
> $MENU[0][1]['url'] = '滋賀';
> $MENU[0][1]['no] = '2';
> $MENU[0][2]['name'] = '近藤';
> $MENU[0][2]['url'] = '京都';
> $MENU[0][0]['no] = '6';
> $MENU[1][0]['name'] = '田中';
> $MENU[1][0]['url'] = '千葉';
> $MENU[0][0]['no] = '2';
> $MENU[1][1]['name'] = '松本';
> $MENU[1][1]['url'] = '船場';
> $MENU[0][1]['no] = '4';
> $MENU[1][2]['name'] = '藤木';
> $MENU[1][2]['url'] = '幕張';
> $MENU[0][2]['no] = '7';
> $MENU[1][3]['name'] = '田村';
> $MENU[1][3]['url'] = '東京';
> $MENU[0][3]['no] = '5';
> 
> こう↑なった時のwhile文の書き方がわからないのです。
> 自分なりにいろいろ試してみておりまして、
> 
> while(list($key, $value) = each($MENU)){
>   while(list($key2,$valu2) = each($value)){
>     $name = $value['name'];
>     $url = $value['url'];
>     $no = $value['no'];
>   print "$name□$url □$no□";
> }
> print "<br>";
> }
> 
> と、書いたのですが、エラーこそ出ないものの
> なにも表示されません(画面真っ白でHTMLに反映
> されていないらしいです)・・・・。
> 
> どうかご指導よろしくお願い申し上げます。


PHP-users メーリングリストの案内