我想找到一个给定的值并返回密钥,我尝试了很多方法解决这个问题,但都没有成功。 我花了很多时间测试不同的解决方案,但到目前为止还没有运气,但这是一个这么简单的任务。 这里是我试过,但没有返回正确的关键部分功能:(在这种情况下应该是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