PHP数组多个键

时间:2015-03-16 13:03:06

标签: php arrays loops for-loop

继承人我想做的事情:

<?php 
$array = array("array1" => array(), "array2" => array());

function mdparser(){
   for($i = 0;$i < func_num_args();$i++){
   //foreach arguement go 1 child deeper
   return $array["array1"] //if second argument exists ["array2"];    
?>

我需要这个来独立地解析多维数组,所以我可以在任何多维数组上使用它。

3 个答案:

答案 0 :(得分:0)

只要在调用它时将数组传递给方法,假设您是从$array 在范围内的某个地方调用它

同时更改你正在构建的数组,这样你就有一个已知的,易于处理的索引,即0.1.2 ......而不是'array1','array2',......

<?php 
$array = array( array(), array() );

function mdparser($array){

   return $array[count($array)-1];
}

$last_array = mdparser($array);
?>

这应该返回外部数组中的最后一个数组。

答案 1 :(得分:0)

仍在猜测你想要实现的目标

$this->myArray = array("key1" => array("key2" => array(1,2,3)));

protected function mdparser(){
   $result = $this->myArray;
   for($i = 0;$i < func_num_args();$i++){
       $result = $result[func_get_arg($i)];
   }
   return $result;
}

$result = this->mdparser('key1', 'key2', 1);

PHP&gt; = 5.6允许可变参数简化:

protected function mdparser(...$args){
   $result = $this->myArray;
   foreach($args as $arg){
       $result = $result[$arg];
   }
   return $result;
}

答案 2 :(得分:0)

无所谓现在我已经找到了一种感谢方式:

    function search_array(){
    $args = func_get_args();
    $arg_num = func_num_args();
     for($i = 0;$i < $arg_num;$i++){
        $arg = $args[$i];
    //foreach arguement go 1 child deeper
    $array = $this->array[$arg];
    $this->array = $array;
     //if second argument exists ["array2"]; 
}
}