try this , it work but i dont like this
http://sandbox.onlinephpfunctions.com/code/9922bf9abec89477e5bd3a81c41feb953db604a1
$a=array(
array('id'=>81),
array('id'=>80,'subcategories'=>array('id'=>82,'subcategories'=>array('id'=>83,'subcategories'=>array('id'=>84,'subcategories'=>array())))),
);
echo "80:" . test($a,80);
echo PHP_EOL;
echo "81:" . test($a,81);
echo PHP_EOL;
echo "82:" . test($a,82);
echo PHP_EOL;
echo "83:" . test($a,83);
function test($a,$key){
$aa=array();
foreach($a as $v){
$b=array();
$content=print_r($v,true);
$b['content']=$content;
if(preg_match('/ {28}\[/',$content)){
$b['over']=1;
}else{
$b['over']=0;
}
$aa[]=$b;
}
foreach($aa as $v){
if(preg_match('/\[id\] => '.$key.'/',$v['content'])){
return $v['over'];
}
}
return 0;
}
then
80:1
81:0
82:1
83:1