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

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


ちょっと訂正
$bと$cがいらなかったです

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

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

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

        foreach( $hogehoge as $key => $value){
                if(is_array($value)){

                        func1( $value,&$arr,$a."/".$key);
                }else{
                        array_push($arr,$a."/".$value);
                }
        }
}

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

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


On Sun, 18 Jan 2009 22:21:33 +0900
ikari-ml @ ecoin.jp 様wrote:

>碇です
>
>再起処理の場合は再帰呼び出しの方がいいと思います
>階層がいくら深くなってもこのコードは動作します
>
>------------------------------------------------------
>$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 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 メーリングリストの案内