我有以下数组:
Array (
[0] => Array (
[word] => 1
[question] => php
[position] => 11
)
[1] => Array (
[word] => sql
[question] => 1
[position] => 22
)
)
我需要找到[position] => 22存在于我的数组中并保留数组路径以供进一步参考。谢谢。
答案 0 :(得分:3)
解决方案“Ancide”提供的代码示例。
$found = false;
foreach ($array as $array_item) {
if (isset($array_item['position'] && $array_item['position'] == "22")) {
$found = true;
break;
}
}
答案 1 :(得分:1)
您可以尝试以下代码:
$array = array
(
array (
"word" => 1,
"question" => php,
"position" => 11
),
array (
"word" => sql,
"question" => 1,
"position" => 22
)
);
foreach($array as $item)
{
foreach($item as $key=>$value)
{
if($key=="position" && $value=="22")
{
echo "found";
}
}
}
答案 2 :(得分:0)
首先使用isset
检查密钥是否存在,然后如果密钥存在,请检查该值是否等于比较值。
编辑:我错过了有两个阵列。要解决此问题,请遍历每个数组并在每个周期中进行检查。如果检查结果为肯定,您可以通过查看当前索引来了解它是哪个数组。
答案 3 :(得分:0)
我认为没有其他解决办法可以循环检查阵列是否存在关键“位置”和值“22”
答案 4 :(得分:0)
尝试使用此功能:
function findKey($array, $mykey) {
if(array_key_exists($mykey, $array))
return true;
foreach($array as $key => $value) {
if(is_array($value))
return findKey($value, $mykey);
}
return false;
}
if(findKey($search_array, 'theKey')) {
echo "The element is in the array";
} else {
echo "Not in array";
}
答案 5 :(得分:0)
试试这个:
function exists($array,$fkey,$fval)
{
foreach($array as $items)
{
foreach($items as $key => $val)
if($key == $fkey and $val == $fval)return true;
}
return false;
}
示例:
if(exists($your_array,"position",22))echo("found");
答案 6 :(得分:0)
这将解决您的问题:
<?php
foreach ($array as $k => $v) {
if(isset($v['position']) && $v['position'] == 22) {
$key = $k;
}
}
echo $key;
//$array[$key]['position'] = 22
?>
答案 7 :(得分:0)
function findPath($array, $value) {
foreach($array as $key => $subArray) if(subArray['position'] === $value) return $key;
return false; // or whatever if not found
}
echo findPath($x, 22); // returns 1
$x= Array (
[0] => Array (
[word] => 1
[question] => php
[position] => 11
)
[1] => Array (
[word] => sql
[question] => 1
[position] => 22
)
)