我有一个像下面这样的数组。
Array
(
[4] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 10
)
[1] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 10
)
[2] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
)
[3] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
)
)
现在,我变量,让我们说是X = 10
。
比,如何在上面的数组中搜索并获得包含$x
的数组索引。
喜欢,在目前的EG中。密钥 4 和 1 的数组包含$x
的值。
我需要那两个阵列。
任何想法?在此先感谢。
答案 0 :(得分:3)
您可以循环然后使用array_search()
$array = array(...); // Your array
$x = 10;
foreach ($array as $key => $value) {
if (array_search($x, $value)) {
echo 'Found on Index ' . $key . '</br>';
}
}
或者如果您需要具有那些索引的数组
$array = array(...); // Your array
$x = 10;
$result = array(); // initialize results
foreach ($array as $key => $value) {
if (array_search($x, $value)) {
$result[] = $array[$key]; // push to result if found
}
}
print_r($result);
答案 1 :(得分:2)
您可以使用array_filter()
仅保留包含所需值的数组:
$array = array(
array(0, 1, 2, 3, 10),
array(0, 1, 2, 3, 10),
array(0, 1, 2, 3),
array(0, 1, 2, 3)
);
$x = 10;
$out = array_filter($array, function($arr) use($x) {
return in_array($x, $arr);
});
print_r($out);
输出:
Array
(
[0] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 10
)
[1] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 10
)
)
答案 2 :(得分:2)
您也可以使用in_array
$array = array(); // Your array
$x = 10;
$result = array(); // initialize results
foreach ($array as $key => $value) {
if (in_array($x, $value)) {
$result[] = $array[$key]; //
}
}
print_r($result)
答案 3 :(得分:2)
您可以使用array_search()函数搜索数组中的值..
链接:http://php.net/manual/en/function.array-search.php
对于Exp:
$x = 10; // search value
$array = array(...); // Your array
$result = array(); // Result array
foreach ($array as $key => $value)
{
if (array_search($x, $value))
{
$result[] = $array[$key]; // push the matched data into result array..
}
}
的print_r($结果);
答案 4 :(得分:0)
您可以使用array_search();