[PHP-users 10339] Re: 関数内での2次元配列の返り値を取得するには?

Naofumi Kondoh php-users@php.gr.jp
Wed, 25 Sep 2002 16:27:39 +0900


ソフト工房の近藤です。

FUJIMOTO Yoshihiko wrote:
> 藤本@質問者です。

....略....

藤本さんのコードで値が入りますね。
PHP 4.2.1 と 4.1.2 とバージョンは違いますが。

error_reporting は、E_ALL になってますか?。

藤本さんのコードのままだと、タイプミスがあって、
Warning の山になりますが、入るところには、値が入ってます。

print_r(sample());

としてみたらどうなりますか?。

-------------------------------------------------------------
修正後のコード
error_reporting(E_ALL);
$iCountX=40;
$iCountY=32;

function sample(){
   global $iCountX,$iCountY;
   for($ix2=0 ; $ix2 <= $iCountX ; $ix2++){
      for($iy2=0 ; $iy2 < $iCountY ; $iy2++){
         $HOGE1[$ix2][$iy2]=$ix2*1000+$iy2;
         $HOGE2[$ix2][$iy2]=$ix2+$iy2;
      }
   }
   return array($HOGE1,$HOGE2);
}
print_r(sample());  // これを実行してみて下さい。
list($hoge1,$hoge2)=sample();
echo("<hr>\n");
//ループが逆 for($iy2=0 ; $iy2 <= $iCountY ; $iy2++){
   // for($ix2=0 ; $ix2 < $iCountX ; $ix2++){
for($ix2=0 ; $ix2 < $iCountX ; $ix2++){
    for($iy2=0 ; $iy2 < $iCountY ; $iy2++){
      // 添え字の y x が逆
      // echo("hoge1[".$iy2."][".$ix2."]=".$hoge1[$iy2][$ix2]."<br>\n");
      // echo("hoge2[".$iy2."][".$ix2."]=".$hoge2[$iy2][$ix2]."<br>\n");
      echo("hoge1[".$ix2."][".$iy2."]=".$hoge1[$ix2][$iy2]."<br>\n");
      echo("hoge2[".$ix2."][".$iy2."]=".$hoge2[$ix2][$iy2]."<br>\n");
   }
}
echo("<hr>\n");

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 (株)ソフト工房   近藤直文        Email:  nkon@shonan.ne.jp
http://www.SOFTKOUBOU.co.jp/      http://www.shonan.ne.jp/~nkon/
2002-09-26(木)19:00-21:30 第6回 JPUG 業務アプリ分科会 勉強会
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/