如何删除数组中的元素?

时间:2012-03-12 15:26:12

标签: php arrays

我有一个这样的数组:

array() {
  ["AG12345"]=>
  array() { 

  }
  ["AG12548"]=>
  array() { 

  }
  ["VP123"]=>
  array() { 

  }

我只需要保留带有以“VP”开头的键的数组

可以使用一个功能吗?

5 个答案:

答案 0 :(得分:3)

是的,只需使用unset()

foreach ($array as $key=>$value)
{
  if(substr($key,0,2)!=="VP")
  {
    unset($array[$key]);
  }
}

答案 1 :(得分:1)

上一个问题:How to delete object from array inside foreach loop?

foreach($array as $elementKey => $element) {
    if(strpos($elementKey, "VP") == 0){
        //delete this particular object from the $array
        unset($array[$elementKey]);
    } 
}

答案 2 :(得分:0)

这对我有用:

$prefix = 'VP';
for ($i=0; $i <= count($arr); $i++) {
   if (strpos($arr[$i], $prefix) !== 0)
      unset($arr[$i]);
}

答案 3 :(得分:0)

另一种选择(如果是值,则会更简单):

array_intersect_key($arr, array_flip(preg_grep('~^VP~', array_keys($arr))));

答案 4 :(得分:-1)

这只是一个如何做到这一点的示例,你可能还有很多其他方法!

// sample array
$alpha = array("AG12345"=>"AG12345", "VP12548"=>"VP12548");
foreach($alpha as $val) 
{
    $arr2 = str_split($val, 2);
    if ($arr2[0] == "VP")
        $new_array = array($arr2[0]=>"your_values");
}