从数组php中删除一个值

Kir*_*kov 1 php arrays

有更简单的方法吗?

$array = array(1,57,5,84,21,8,4,2,8,3,4);
$remove = 21;   
$i = 0;
foreach ($array as $value ){
    if( $value == $remove)
        unset($array[$i])
        $i++;
    }

//array: 1,57,5,84,8,4,2,8,3,4
Run Code Online (Sandbox Code Playgroud)

Mik*_*ant 8

array_search回答是好.你也可以arraydiff这样

$array = array(1,57,5,84,21,8,4,2,8,3,4);
$remove = array(21);
$result = array_diff($array, $remove); 
Run Code Online (Sandbox Code Playgroud)


mea*_*gar 5

如果要删除数组中第一次出现的项,请使用array_search查找数组中项的索引而不是滚动自己的循环.

$array = array(1,57,5,84,21,8,4,2,8,3,4);
$remove = 21;

$index = array_search($remove, $array);

if (index !== false)
  unset($array[$index]);
Run Code Online (Sandbox Code Playgroud)

要删除所有重复项,只要找到匹配项就重新运行搜索/删除:

while (false !== ($index = array_search($remove, $array))) {
  unset($array[$index]);
}
Run Code Online (Sandbox Code Playgroud)

或找到匹配值的所有键并删除它们:

foreach (array_keys($array, $remove) as $key) {
  unset($array[$key]);
}
Run Code Online (Sandbox Code Playgroud)