我有一个关键列表 例如
$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;
}
答案 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
,这将允许函数读/写到该堆栈。