php数组搜索值(如果存在)

时间:2016-02-23 16:47:17

标签: php arrays

[{id: 1, group: core},{id: 2, group: elite},{id: 3, group: elite},{id: 4, group: elite}]

如何检查ID是否已经退出数组?

我试过了 in_array(array('id' => 2), $myarray)但它不起作用。

2 个答案:

答案 0 :(得分:1)

你必须传递所有数组:

in_array(array('id' => 2, 'group' => 'elite'), $myarray)

答案 1 :(得分:0)

您可以使用 array_column 函数从数组中提取一列,然后搜索值,如下所示:

in_array(2, array_column($myarray, 'id'));

这假设您将该JSON转换为关联数组而不是对象数组。

警告:此功能仅适用于PHP 5.5及更高版本,因此您可以将此解决方法用于旧版本,其中功能不存在(在5.5+上它将使用本机快速实现) :

if (!function_exists('array_column')) {
  function array_column($array, $column_key) {
    $ret = array();
    foreach ($array as $item)
      $ret[] = $item[$column_key];
    return $ret;
  }
}