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

Naofumi Kondoh php-users@php.gr.jp
Wed, 25 Sep 2002 11:59:56 +0900


ソフト工房の近藤です。

FUJIMOTO Yoshihiko wrote:
> こんにちは。藤本です。
....略....
> PHP は 4.1.2 です。
> 
> 関数内で生成した2次元配列を返り値で返してやるには、どの様に記述すれば
> 良いのでしょうか?。

PHP 4.2.1 ですが、ご要望の通りの事ができます。
どんなエラーになるのでしょうか?。
関数の返信値を print_r で見るとヒントになると思います。

# プログラムコードは、コピー・ペーストで、そのまま実行
# できるように書いて欲しいな。

<?php
$iCountX=2; $iCountY=1;
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);
}
// $r = sample();
// echo "<pre>"; print_r($r); echo "</pre>";
list($hoge1,$hoge2)=sample();
echo "<pre>"; print_r($hoge1); echo "</pre>";
for($ix2=0 ; $ix2 <= $iCountX ; $ix2++){
  for($iy2=0 ; $iy2 < $iCountY ; $iy2++){
     echo "hoge1[$ix2][$iy2] = ", $hoge1[$ix2][$iy2] , "<br>";
     echo "hoge2[$ix2][$iy2] = ", $hoge1[$ix2][$iy2] , "<br>";
  }
}
?>

------------- 実行結果 ------------
Array
(
    [0] => Array
        (
            [0] => 0
        )

    [1] => Array
        (
            [0] => 1000
        )

    [2] => Array
        (
            [0] => 2000
        )

)

hoge1[0][0] = 0
hoge2[0][0] = 0
hoge1[1][0] = 1000
hoge2[1][0] = 1000
hoge1[2][0] = 2000
hoge2[2][0] = 2000

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 (株)ソフト工房   近藤直文        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 業務アプリ分科会 勉強会
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/