[PHP-users 34247] Re: 再帰処理について
decoy
youtube0318 @ gmail.com
2009年 1月 18日 (日) 12:29:54 JST
decoyです。
>>※
>>グローバル変数を利用した上記処理は出来たのですが
>>何とかグローバル変数を利用せずに関数内で完結するよう処理したいところです。
>
> というだけなら、以下でどうでしょう。
確かに上記だけなら下記コードで問題ありません。
ありがとうございます。
ただ、元々のコード(グローバル変数を利用し、例として記載していたコード)に
配列が下記のように増えた場合、対応出来ない問題がありました。
例えば$hogehogeの内容が
$hogehoge = array(
'hogeKey1' => array(
'hogeValue1',
'hogeValue2',
'hogeValue3',
'hogeKey2' => array(
'hogeValue21',
'hogeKey3' => array(
'hogeValue31'
),
),
'hogeValue4',
'hogeKey3' => array(
'hogeValue32'
),
),
'hogeKey4' => array(
'hogeKey5' => array(
'hogeValue41'
),
),
);
のような感じになった場合でも
出力イメージ
array(8) {
[0]=>
string(19) "hogeKey1/hogeValue1"
[1]=>
string(19) "hogeKey1/hogeValue2"
[2]=>
string(19) "hogeKey1/hogeValue3"
[3]=>
string(29) "hogeKey1/hogeKey2/hogeValue21"
[4]=>
string(38) "hogeKey1/hogeKey2/hogeKey3/hogeValue31"
[5]=>
string(19) "hogeKey1/hogeValue4"
[6]=>
string(29) "hogeKey1/hogeKey3/hogeValue32"
[7]=>
string(29) "hogeKey4/hogeKey5/hogeValue41"
}
上記のように結果が返ってくるようにしたいです。
お手数をお掛けし、申し訳ありませんが宜しくお願い致します。
// decoy
----- Original Message -----
From: <shin-1 @ ca2.so-net.ne.jp>
To: "PHP-users ML" <php-users @ php.gr.jp>
Sent: Sunday, January 18, 2009 11:20 AM
Subject: [PHP-users 34246] Re: 再帰処理について
> shin-1です。
>
>>※
>>グローバル変数を利用した上記処理は出来たのですが
>>何とかグローバル変数を利用せずに関数内で完結するよう処理したいところです。
>
> というだけなら、以下でどうでしょう。
>
> function hoge($arg1, $aryKey = array(), $result = array())
> {
>
> foreach ($arg1 as $intKey => $mixValue) {
> if (is_array($mixValue)) {
> $aryKey[] = $intKey;
> return call_user_func(__FUNCTION__, $mixValue, $aryKey,
> $result);
> }
> $result[] = join('/', $aryKey) . '/' . $mixValue;
> }
> return $result;
> }
> _______________________________________________
> 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 メーリングリストの案内