有没有办法递归设置数组?这些方面的东西:
$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' ;
答案 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';