用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2596|回复: 4
收起左侧

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

[复制链接]
发表于 2012-7-14 15:37:54 | 显示全部楼层 |阅读模式
本帖最后由 x171306523c 于 2012-7-14 15:43 编辑
PHP复制代码
 
<?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);
?>
 
复制代码

这是一个多维数组的递归遍历。输出结果为
PHP复制代码
 
Array
(
    [1] => Array
        (
            [0] => 11
            [1] => 12
            [2] => 13
            [14] => Array
                (
                    [0] => 141
                    [1] => 142
                )
        )
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
)
11
12
13
141
142
2
3
4
5
 
复制代码

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

发表于 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的方式,测试过了
发表于 2012-7-14 16:25:46 | 显示全部楼层
顶顶....
发表于 2012-7-14 16:49:38 | 显示全部楼层
不明白如何去MVC一个简单函数!

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

PHP复制代码
 
<?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:}

本版积分规则