<?php
static $cnt=0;
$name='victor';
$coll = array(
'dep1'=>array(
'fy'=>array('john','johnny','victor'),
'sy'=>array('david','arthur'),
'ty'=>array('sam','joe','victor')
),
'dep2'=>array(
'fy'=>array('natalie','linda','molly'),
'sy'=>array('katie','helen','sam','ravi','vipul'),
'ty'=>array('sharon','julia','maddy')
)
);
function array_find($name,$arr)
{
global $cnt;
if(!(is_array($arr)))
return false;
foreach($arr as $val)
{
if(is_array($val))
array_find($name,$val);
else
{
$val=strtolower($val);
$item=strtolower($name);
if($val==$name)
$cnt+=1;
}
}
}
array_find($name,$coll);
if($cnt==0)
echo "$name was Not Found";
else
echo "$name was found $cnt times.";
答案 0 :(得分:1)
试试这段代码,希望它能运作
<?php
static $cnt = 0;
$name = 'victor';
$coll = array(
'dep1' => array(
'fy' => array('john', 'johnny', 'victor'),
'sy' => array('david', 'arthur'),
'ty' => array('sam', 'joe', 'victor')
),
'dep2' => array(
'fy' => array('natalie', 'linda', 'molly'),
'sy' => array('katie', 'helen', 'sam', 'ravi', 'vipul'),
'ty' => array('sharon', 'julia', 'maddy')
)
);
function recursive_search(&$v, $k, $search_query){
global $cnt;
if($v == $search_query){
++$cnt;
}
}
array_walk_recursive($coll, 'recursive_search' , $name);
if ($cnt == 0)
echo "$name was Not Found";
else
echo "$name was found $cnt times.";