PHP数组多个键

PHP数组多个键,php,arrays,loops,for-loop,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 ["ar

以下是我想做的:

<?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"];    
?>


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

只要在调用该数组时将其传递给该方法,假设您是从
$array
在作用域中的某个地方调用它

还要更改正在构建的数组,以便有一个已知的、易于处理的索引,即0.1.2。。。而不是“array1”、“array2”

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

function mdparser($array){

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

$last_array = mdparser($array);
?>


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

仍然只是猜测您要实现的目标

$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);

不管怎样,我找到了一个方法谢谢你:

    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"]; 
}
}
函数搜索_数组(){
$args=func_get_args();
$arg_num=func_num_args();
对于($i=0;$i<$arg_num;$i++){
$arg=$args[$i];
//对于每一个争论,深入一个孩子
$array=$this->array[$arg];
$this->array=$array;
//如果存在第二个参数[“array2”];
}
}

阅读一些没有帮助的内容,不幸的是,“变量范围”引用的可能重复应该有助于消除至少一个问题:
$array
mdparser()
函数中不存在,因为它“超出范围”。。。您还存在其他问题,例如缺少
}
然后显示“真实”代码,而不是拼凑在一起的语法无效的东西,以及大量其他问题1。函数参数中没有包含$array。2.阅读上面的评论,你会发现它实际上是一个类的一部分,尽管这确实是OPs的错误。@Styphon谢谢,woops。在课堂上,我猜不出他的课堂是什么样子,所以他必须根据实际情况推断答案。(s) 他似乎认为他们不想给出一段真正的代码。谢谢你的尝试,但它不起作用。正如他们对你的问题所说的,给我们半个机会,展示一些更真实的代码。我不能用其他3000行代码来完成整个课程。。。
    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"]; 
}
}