Looking at the code above...
$Array = array(array("name"=>"Mickey","type"=>"mouse"),array("name"=>"Donald","type"=>"duck"),array("name"=>"Little Helper","type"=>"eniac"));
$search = "Donald";
foreach($Array as $Item){
if($Item["name"]==$search) $MyItem = $Item;
}
echo('The item named "'.$search.'" is '.$MyItem["type"]);
... I have the feeling that there is an array function or a better way to find an item inside a bidimensional array. These arrays are like a table. Maybe setting the keys as the index unique values (in this case, the name), but I don't know how to do either.
Using the new array_column() function in PHP 5.5
$Array = array(array("name"=>"Mickey","type"=>"mouse"),array("name"=>"Donald","type"=>"duck"),array("name"=>"Little Helper","type"=>"eniac"));
$search = "Donald";
$key = array_search(
$search,
array_column($Array,'name')
);
if($key !== false) {
$MyItem = $Array[$key];
echo('The item named "'.$search.'" is '.$MyItem["type"]);
}
If you can recompose the array as:
array("Mickey"=>"mouse","Donald"=>"duck","Little Helper"=>"eniac");
or
array("Mickey"=>array("name"=>"mouse"),"Donald"=>array("name"=>"duck"),"Little Helper"=>array("name"=>"eniac"));
and just return by key
Works for this case:
echo array_column($Array, 'type', 'name')[$search];
Or with check:
$names = array_column($Array, 'type', 'name');
echo isset($names[$search]) ? $names[$search] : 'not found';
To convert to name
=> type
use:
$Array = array_column($Array, 'type', 'name');
Then after you can just use $Array[$search]
.