前提:一个多维数组,它的每个最小单元值都为数字。
要求:写一个函数,将最小单元值翻倍。
代码如下
<?php $arr = array(1,3,'a'=>20,'b'=>array(2,4,6,'c'=>7)); function arr2($arr){ foreach($arr as $key=>$v){ if(!is_array($v)){ $arr[$key] *= 2; }else{ $arr[$key] = arr2($arr[$key]); } } return $arr; } echo "<pre>"; print_r(arr2($arr)); ?>
利用系统提供的函数来解决,方法如下:
<?php $arr = array(1,3,'a'=>20,'b'=>array(2,4,6,'c'=>7)); function t(&$arr){ $arr *= 2; } echo "<pre>"; array_walk_recursive($arr,'t'); print_r($arr); ?>