如何只删除数组项?

时间:2017-04-19 03:38:42

标签: php

我有一个数组。

$a_input = array(1,2,3,4,5)

我想从数组中删除1。 out put是:

array(2,3,4,5);

删除2 =>输出:

array(1,3,4,5);

删除3 =>输出:

array(1,2,4,5);

..... 如何用for循环做这个?

6 个答案:

答案 0 :(得分:0)

使用unset

foreach($a_input as $key => $val){
   if($a_input[$key]==1) unset($a_input[$key]); 
}

答案 1 :(得分:0)

试试这个

$a_input = array(1,2,3,4,5);

$cnt=count($a_input);
for($i=0;$i<$cnt;$i++){
   $remove = array($i+1);
   $output1=array_diff($a_input,$remove);
   var_dump("<pre>",$output1);
}

Online test

答案 2 :(得分:0)

您可以使用

$array = array(1,2,3,4,5);
if (($key = array_search('1', $array)) !== false) {
unset($array[$key]);
}

答案 3 :(得分:0)

我们在数组中searching a value如果存在,请继续get the key,其中包含所需的值,然后unseting that value

Try this code snippet here

<?php
ini_set('display_errors', 1);

$a_input = array(1,2,3,4,5);
$numberToSearch=2;

if(in_array($numberToSearch,$a_input))//checking whether value is present in array or not.
{
    $key=array_search($numberToSearch, $a_input);//getting the value of key.
    unset($a_input[$key]);//unsetting the value
}
print_r($a_input);

<强>输出:

Array
(
    [0] => 1
    [2] => 3
    [3] => 4
    [4] => 5
)

答案 4 :(得分:0)

您需要的是 array_filter

$input = array(1,2,3,4,5)
$remove = 1;
$result = array_filter($input, function ($val) use ($remove) {
  return $val !== $remove;
});

答案 5 :(得分:0)

您需要array_diff

$a_input = array(1,2,3,4,5);

您可以使用以下值创建新数组:

$remove = array(1,2);

$result=array_diff($a_input,$remove);

输出:

array(3,4,5);

大多数程序员只使用这种方式。这也适用于多个元素。