PHP - 如何比较数组中是否存在值?

时间:2009-08-08 07:43:41

标签: php

我有一个如下所示的数组:

Array
(
    [0] => Array
        (
            [0] => 1
            [id] => 1
        )

    [1] => Array
        (
            [0] => 2
            [id] => 2
        )
)

我想要做的是将int值与id值字段中的值进行比较。所以,如果我传入一个1,我希望能够有一个比较这个功能。我在思考in_array,但我无法让它发挥作用。有谁知道我可以用它做什么功能?

感谢。

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

$needle = 1;
$found = false;
foreach ($array as $key => $val) {
    if ($val['id'] === 1) {
        $found = $key;
        break;
    }
}
if ($found !== false) {
    echo 'found in $array['.$found.']';
}

因为你想要更紧凑的东西:

$needle = 1;
array_filter($array, create_function('$val', 'return $val["id"] !== '.var_export($needle, true).';'))

这将过滤掉id值不是1的所有元素。

答案 1 :(得分:1)

你不希望函数的结果是什么,但是我猜你想要包含你正在寻找的ID的数组的键,在这种情况下,下面的函数会找到这一点。

<?php
function get_key($array, $id) {
  foreach ($array as $key => $unit) {
   if ($unit['id'] == $id) {
     return $key;
   }
  }
}