Re: array_search and multi-dimensional arrays
| From: | M. Sokolewicz | Date: | Tue, 14 Mar 2006 13:19:55 +0000 |
| Subject: | Re: array_search and multi-dimensional arrays | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-231895@lists.php.net to get a copy of this message | ||
List Manager wrote:
jonathan wrote:Or, a lot easier: foreach($c as $key=>$row) { if(false !== array_search("England",$row)) {I'd like to return the first key value in the following array such that England would return 1 rather than 3 which is the second key value. Any help would be greatly appreciated. $c[1][]="Vietnam"; $c[1][]="China"; $c[1][]="Thailand"; $c[1][]="England"; $c[2][]="USA"; $c[2][]="Japan"; print_r($c); // Array ( [1] => Array ( [0] => Vietnam [1] => China [2] => Thailand [3] => England ) [2] => Array ( [0] => USA [1] => Japan ) ) foreach($c as $row) {give this a shot <?php function findIndexof($ar, $str) { foreach($ar AS $k => $v) { if ( is_array($v) ) {echo array_search("England",$row);} // prints 3 -jonathan --PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php$val = findIndexof($v, $str); if( $val !== false ) { return $val; }} elseif ( strtolower($v) == strtolower($str) ) {return $k;} } return FALSE; } $c[1][] = "Vietnam"; $c[1][] = "China"; $c[1][] = "Thailand"; $c[1][] = "England"; $c[2][] = "USA"; $c[2][] = "Japan"; echo findIndexof($c, 'Vietnam'); ?> You should be able to search arrays of any depth Hope this woks for you. Jim
echo $key;} }