function hoge($value){
if(is_array($value)){
return array_map('hoge',$value);
}else{
return fuga($value);
}
}
function fuga($a){
return $a * 2;
}
fugaの引数が1つだとarray_mapで回せますが、
fuga($a,$b)のように引数が複数の場合はどのように
書けば良いのでしょうか?
ご存知のかたご教示下さい。
array_map は複数の配列に対応していますので、
例えば下記のような具合に利用することが出来ます。
<?php function hoge($v1, $v2){ if(is_array($v1) && is_array($v2)){ return array_map('hoge', $v1, $v2); } else { return fuga($v1, $v2); } } function fuga($a, $b){ return $a * $b; } $a = array( array(1,2,3,4,5), array(11,12,13,14,15), array(21,22,23,24,25) ); $b = array( array(10,20,30,40,50), array(100,200,300,400,500), array(1000,2000,3000,4000,5000) ); print_r(hoge($a, $b));
array_map は複数の配列に対応していますので、
例えば下記のような具合に利用することが出来ます。
<?php function hoge($v1, $v2){ if(is_array($v1) && is_array($v2)){ return array_map('hoge', $v1, $v2); } else { return fuga($v1, $v2); } } function fuga($a, $b){ return $a * $b; } $a = array( array(1,2,3,4,5), array(11,12,13,14,15), array(21,22,23,24,25) ); $b = array( array(10,20,30,40,50), array(100,200,300,400,500), array(1000,2000,3000,4000,5000) ); print_r(hoge($a, $b));
>同じ分だけ生成
array($v2) じゃなくて array_fill(1,count($v1),$v2)を使うなど、
方法はいろいろありますが、そのようなことが必要な場面に遭遇したことが無いので、
「必要ならば・・・」という返事しか出来ないです
有難うございます。
すいません長々とお付き合いいただいて!
とても参考になりました。
これはスゴイです。
ぜひ使わせて頂きます。
いろんな関数があっても使う場面がないと
宝の持ち腐れですね。
有難うございました!
>同じ分だけ生成
2012/04/13 20:04:07array($v2) じゃなくて array_fill(1,count($v1),$v2)を使うなど、
方法はいろいろありますが、そのようなことが必要な場面に遭遇したことが無いので、
「必要ならば・・・」という返事しか出来ないです
有難うございます。
2012/04/13 20:17:30すいません長々とお付き合いいただいて!
とても参考になりました。