删除数组PHP的某些部分

时间:2014-11-10 10:13:46

标签: php arrays

我需要删除数组中的某个键,因为我正在为我的数据创建一个过滤器。

Array(
   [0]=>Array
      (
        ['Column1'] => 'ABC'
        ['Column2'] => 'xxx'
      )
   [1]=>Array
      (
        ['Column1'] => 'XYZ'
        ['Column2'] => 'xxx'
      )
)

我想删除具有值' XYZ'的键(表示数字2)。我该如何删除它?我需要删除它,因为我正在过滤由另一个脚本抛给我的数组,我需要删除密钥。我尝试使用for循环,但我不知道如何删除它。

for($z = 0; $z < count($array);$z++)
{
   if($array[$z]['Column1'] == 'XYZ'){
          // how do I remove the record [1] and all of its contents?
  }
}

2 个答案:

答案 0 :(得分:3)

使用unset()

for($z = 0; $z < count($array);$z++)
{
   if($array[$z]['Column1'] == 'XYZ'){
     unset($array[$z]);
  }
}

你也可以这样做:

foreach($array as &$v) {
  if($v['Column1'] == 'XYZ') {
    unset($v);
  }
}

在数组上使用unset()之后,只要您不需要保留索引值,就值得这样做:

$array = array_values($array);

重置数组索引。

答案 1 :(得分:0)

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