как путешествовать по массиву в php? - PullRequest
0 голосов
/ 25 марта 2011

У меня есть один список ключей, например

  $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 ]

2 голосов
/ 25 марта 2011

Либо передать в функцию или объявить как глобальный

function abc($a,$key_list){

ИЛИ

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 голос
/ 25 марта 2011

http://php.net/manual/en/function.array-walk.php

array_walk

попробуйте это

0 голосов
/ 25 марта 2011

Вы должны перенести переменную в область действия, в вашем коде у вас есть ........., если вы замените ее на global $key_list, это позволит функции читать / записывать в этот стек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...