我想找到一個給定的值並返回密鑰,我嘗試了很多方法解決這個問題,但都沒有成功。 我花了很多時間測試不同的解決方案,但到目前爲止還沒有運氣,但這是一個這麼簡單的任務。 這裏是我試過,但沒有返回正確的關鍵部分功能:(在這種情況下應該是0)找到一個給定的值並返回密鑰
這將返回什麼:
$mapkey = $data['srv']['map_image'];
$ikey = array_search($mapkey, $data['srv']['maps']);
if ($ikey !== FALSE) {
// Match made.
}
我得到「3」時,它應該是「0 」從這個:
foreach ($data['srv']['maps'] as $key => $value) {
$mapkey = ($data['srv']['map_image']);
if ($value === $mapkey && $data['srv']['maps'][$key]['map_image'] === $mapkey) {
return $key;
}
}
我從中得到什麼,應該是 '0':
$mapkey = $data['srv']['map_image'];
foreach ($data['srv']['maps'] as $key => $val) {
if ($val === $mapkey) {
return $key;
}
}
這一個完全崩潰的網頁:$ data數組的
function recursive_array_search($mapkey,$data) {
foreach($data['srv']['maps'] as $key=>$val) {
$mapkey = $data['srv']['map_image'];
$imagekey=$key;
if($mapkey===$val OR (is_array($val) && recursive_array_search($mapkey,$val) !== false)) {
return $imagekey;
}
}
return false;
}
實施例:
Array
(
[srv] => Array
(
[map_name] => map 1
[map_image] => MP_001
[maps] => Array
(
[0] => Array
(
[map_name] => map 1
[map_image] => mp_001
)
[1] => Array
(
[map_name] => map 2
[map_image] => mp_017
)
[2] => Array
(
[map_name] => map 3
[map_image] => mp_014
)
[3] => Array
(
[map_name] => map 4
[map_image] => mp_007
)
)
)
)
第四個似乎你完全混淆.. – frunkad 2015-02-24 11:28:49
嗨第四個唯一的問題是,我直接從PHP手冊複製和粘貼(http://php.net/manual/en/function.array -search.php)....它的評分最高的答案是? – Renny 2015-02-24 14:31:54