[PHP-users 34250] Re: 再帰処理について

ikari-ml @ ecoin.jp ikari-ml @ ecoin.jp
2009年 1月 18日 (日) 22:21:33 JST


碇です

再起処理の場合は再帰呼び出しの方がいいと思います
階層がいくら深くなってもこのコードは動作します

------------------------------------------------------
$arr = array();
$a = "";

func1($hogehoge,&$arr,$a);

function func1($hogehoge,$arr,$a){

        foreach( $hogehoge as $key => $value){
                if(is_array($value)){
                        $b = $a."/".$key;
                        func1( $value,&$arr,$b);
                }else{
                        $c = $a."/".$value;
                        array_push($arr,$c);
                }
        }
}

------------------------------------------------------

foreach($arr as $value){
        echo $value."\n";
}

On Sun, 18 Jan 2009 14:39:18 +0900
"decoy" <youtube0318 @ gmail.com> 様wrote:

>decoyです。
>
>配列の順番を変えたり、増やしたりして動作確認しましたが
>下記のコードで特に問題は発生しませんでした。
>
>大変助かりました。
>ありがとうございます。
>
>また、何かありましたらご連絡させて頂ければと思います。
>
>// decoy
>
>----- Original Message ----- 
>From: "Takenori Higashimura" <oni @ izumi-si.co.jp>
>To: "PHP-users ML" <php-users @ php.gr.jp>
>Sent: Sunday, January 18, 2009 1:21 PM
>Subject: [PHP-users 34248] Re: 再帰処理について
>
>
>> 東村です。
>> 引数リストが違いますが、以下ではどうでしょうか。
>> PHP 5.2.6 では動作しました。
>> function hoge($hoge) {
>>  $a = array();
>>  foreach($hoge as $key => $value) {
>>    if (is_array($value)) {
>>      foreach(hoge($value) as $b) {
>>        array_push($a,$key . '/' . $b);
>>      }
>>    } else {
>>      array_push($a,$value);
>>    }
>>  }
>>  return $a;
>> }
>>
>> _______________________________________________
>> PHP-users mailing list  PHP-users @ php.gr.jp
>> http://ml.php.gr.jp/mailman/listinfo/php-users
>> PHP初心者のためのページ - 質問する前にはこちらをお読みください
>> http://oldwww.php.gr.jp/php/novice.php3 
>
>_______________________________________________
>PHP-users mailing list  PHP-users @ php.gr.jp
>http://ml.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://oldwww.php.gr.jp/php/novice.php3

-- 
碇 永志
 <ikari-ml @ ecoin.jp>



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