x171306523c 发表于 2012-7-14 15:37:54

如何改写成CI的遍历多维数组

本帖最后由 x171306523c 于 2012-7-14 15:43 编辑


<?php
function arr_foreach ($arr)
{
if (!is_array ($arr))
{
return false;
}

foreach ($arr as $key => $val )
{
if (is_array ($val))
{
   arr_foreach ($val);
}
else
{
   echo $val.'<br/>';
}
}
}
$arr1 = array (1=>array(11,12,13,14=>array(141,142)),2,3,4,5);
echo '<pre>';
print_r($arr1);
echo '<pre>';
arr_foreach ($arr1);
?>

这是一个多维数组的递归遍历。输出结果为

Array
(
    => Array
      (
             => 11
             => 12
             => 13
             => Array
                (
                   => 141
                   => 142
                )
      )
    => 2
    => 3
    => 4
    => 5
)
11
12
13
141
142
2
3
4
5

请问,如何将以上代码用CI的MVC进行改写?

kenny828 发表于 2012-7-14 16:15:38

public function get_arr(){
                $arr = array(1=>array(11,12,13,14=>array(141,142)),2,3,4,5);
                echo $this->arr_foreach($arr);       
        }
       
        public function arr_foreach($arr){
                if(is_array($arr)){
                        foreach ($arr as $key => $val){
                                if (is_array($val)){
                                        $this->arr_foreach($val);
                                }else{
                                        echo $val.'<br/>';
                                }
                        }
                }else{
                        echo $arr;
                }
        }

CI的方式,测试过了

sunjingping 发表于 2012-7-14 16:25:46

顶顶....

燃雲 发表于 2012-7-14 16:49:38

不明白如何去MVC一个简单函数!

但为何简单函数弄得如此复杂?能否简单点?


<?php
$arr1 = array (1 => array(11, 12, 13, 14 => array(141, 142)), 2, 3, 4, 5);
function print_val($val, $key)
{
    echo $val . '<br />';
}
echo '<pre>';
print_r($arr1);
echo '<pre>';
array_walk_recursive($arr1, 'print_val');
?>



暮雨、蝶飞 发表于 2013-5-17 17:04:29

{:soso_e113:}
页: [1]
查看完整版本: 如何改写成CI的遍历多维数组