如何在PHP中通过数组旅行?

时间:2011-03-25 10:29:33

标签: php arrays key

我有一个关键列表 例如

  $key_list=array("list"=>array("task","duration"));

function array_key_fun($key_list,$test_input){
    //(is_array($test_input)){
return    array_map('myfunction',$test_input,$key_list);
    //}
}


//$va=array_map("myfunction",$test_input);
//print_r(array_key_fun($key_list,$test_input));

function myfunction($arr)
{
    if(is_array($arr))
        {

        $get_array=    get_childs($arr);
            return $get_array;
        }
 }
function get_childs($arr){

                    $newarr=array();
                    $newarr_en='';
                                    foreach($arr as $key=>$value)    
                        {    

                        if(is_array($value)){
                              $newarr[$key]=get_childs($value);

                        }else{

                            if (in_array($key,$key_list)) //here im facing the problem with key_list
                                      {
                                        ..............
                                      }
                                     else
                                     {
                                        ...............
                                     }

                            }

                        }
           return $newarr;



    }

3 个答案:

答案 0 :(得分:2)

传入函数或声明为全局

function abc($a,$key_list){

OR

function abc($a){
  global $key_list;
  //rest of code

编辑:

当您将数组作为函数参数传递时,您必须在调用中传递值

当你调用这个函数时,这应该是

//array should be declared before calling function 
  $key_list=array("list"=>array("task","duration")); 
  abc($a,$key_list); //pass this array

答案 1 :(得分:1)

答案 2 :(得分:0)

如果用.........替换变量,则必须将变量放入代码范围内global $key_list,这将允许函数读/写到该堆栈。