如何在PHP中按值删除数组索引?

时间:2015-06-05 09:42:37

标签: php

删除值为1的数组索引

array (1=>1,2=>2,3=>1,4=>1,5=>3,6=>1);

结果数组为

array(2=>2,5=>3);

在php中有直接的功能吗?像

unset(key($a,1));

5 个答案:

答案 0 :(得分:2)

使用array_filter()

$myArray = array (1=>1,2=>2,3=>1,4=>1,5=>3,6=>1);

$myArray = array_filter(
    $myArray,
    function($value) {
        return $value !== 1;
    }
);

答案 1 :(得分:2)

使用array_diff作为

的一个班轮

$your_array = array_diff ( $your_array, [1] );

答案 2 :(得分:0)

循环浏览,检查并取消设置 -

foreach($array as $k => $v) {
    if($v == 1) {
        unset($array[$k]);
    }
}

或使用array_filter()

$newArr = array_filter($array, function($v) {
    return ($v != 1);
});

或者您可以使用array_flip()获取某些技巧 -

$temp = array_flip($array);
unset($temp[1]);
$array = array_flip($temp);

答案 3 :(得分:0)

您也可以使用array_flip并使用以下代码:

<?php
  $arr = array(1=>1,2=>2,3=>1,4=>1,5=>3,6=>1);
  $arr1 = array_flip($arr);
  unset($arr1[1]);
  $arr = array_flip($arr1);
  print_r($arr);
?>

答案 4 :(得分:0)

使用array_search()并取消设置,请尝试以下操作:

while(($key = array_search(1, $array)) !== false) {
   unset($array[$key]);
}