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