Page 1 of 1
Search Keys in array of arrays
Posted: Mon Oct 25, 2004 5:15 am
by anjanesh
Code: Select all
$arr=array(
"Mainkey1"=>array("Name"=>"name1","Occurred"=>0),
"Mainkey2"=>array("Name"=>"name2","Occurred"=>0),
"Mainkey3"=>array("Name"=>"name3","Occurred"=>0),
"Mainkey4"=>array("Name"=>"name4","Occurred"=>0)
);
$arr["Mainkey3"]["Occurred"]=1;
print_r(array_keys($arr,"1"));
returns FALSE. How do search for keys in sub-arrays ?
Thanks
Posted: Mon Oct 25, 2004 8:20 am
by swdev
I assume you want to find the main key for all those arrays that have a valued for the 'Occurred' key equal to 1.
The [php_man]array_key[/php_man] function only searches a 1 dimensional array. Therefore you need to step through each main key, and use the array_key function on the resulting sub-array.
Code: Select all
<?php
$arr=array(
'Mainkey1'=>array('Name'=>'name1','Occurred'=>0),
'Mainkey2'=>array('Name'=>'name2','Occurred'=>0),
'Mainkey3'=>array('Name'=>'name3','Occurred'=>0),
'Mainkey4'=>array('Name'=>'name4','Occurred'=>0)
);
$arr['Mainkey3']['Occurred']=1;
foreach ($arr as $key => $new_array)
{
$found_array = array_keys($arr[$key], '1');
if ( (is_array($found_array) == true) && (count($found_array) > 0) )
{
echo 'Found Main Array at Key ' . $key . ' Name = ' . $new_array['Name'] . ' Occured = ' . $new_array['Occurred'];
}
}
?>
Hope this helps
Posted: Tue Oct 26, 2004 11:10 am
by anjanesh
Thanks - I already did that - I was hoping for array_search or array_keys or some other fn to search in sub arrays too.