如何在PHP中搜索和删除数组元素?

时间:2009-09-15 15:46:34

标签: php arrays search collections

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

Array
(
 [0] => Array
 (
  [start] => DateTime Object
  (
  )

  [end] => DateTime Object
  (
  )

  [comment] => A comment.
 )

 [1] => Array
 (
  [start] => DateTime Object
  (
  )

  [end] => DateTime Object
  (
  )

  [comment] => Another comment.
 )
)

我想创建一个从匹配函数输入的数组中删除元素(start,end,comment)的函数,如果不存在则返回false。是否已有PHP功能可以执行此操作?

2 个答案:

答案 0 :(得分:6)

猜猜你的意思是array_search()

while (($pos = array_search($input, $multiArray)) !== false) {
    unset($multiArray[$pos]);
}

答案 1 :(得分:2)

不完全是。你可以这样做:

function array_remove(&$array, $search, $strict = false) { 
    $keys = array_keys($array, $search, $strict);
    if(!$keys)
        return false;
    foreach($keys as $key)
        unset($array[$key]);
    return count($keys);
}

与使用array_search()不同,如果有多个匹配的条目,这将有效。