使用方法设置递归数组

时间:2011-12-07 14:16:32

标签: php arrays

有没有办法递归设置数组?这些方面的东西:

  $array = new ArrayElements ( ) ;
  $array->set('index', 10)->set('indexInIndex',20);

然后数组看起来像这样:

Array
(
    [index] => Array
        (
            [0] => 10
            [indexInIndex] => 20
        )

)

我知道它必须涉及一个流畅的接口,但它的要点是如何判断一个方法是否被链接到一个方法'set'然后将索引带到前面的set setou,并写在这个索引之上

func_get_args也可以关闭并获取所有参数并根据线程设置,例如

      public function set ( $index , $value ) {
         if ( func_num_args() > 2 ) {
            $indexes = array_splice ( func_get_args() , 2 ) ;
         }
      }

然后..

->set( 'index' , 'value' , 'inIndex' , 'inIndex1' )

等于:$storage [ 'inIndex' ] [ 'inIndex1' ] [ 'index' ] = 'value' ;

1 个答案:

答案 0 :(得分:1)

你得到的数组结构和参数顺序对我来说很奇怪。我想知道你的样本输出是否只是错误。也许这有助于您实现目标。

$r = array(array_pop($args));
foreach (array_reverse($indexes) as $index) {
    $r = array($index => $r);
}

然后

'a' , 'b' , 'c', 'val'

产量

$r['a']['b']['c'] = 'val';