从多维数组中删除元素,其中[2] = x

时间:2014-10-23 15:48:37

标签: php arrays

我看到了许多类似的问题,但是如果任何值为x,它们似乎略有不同,请删除该元素。如果我错过了Q& A,请道歉。

我有一个表格数组:

0 => ("A Name", 22, 33, 44, 55)
1 => ("Another", 2, 3, 4, 5)
etc

我想基本上执行"如果$ array [*] [2] = 33,删除该元素",在这种情况下将删除A Name的记录。

我相对自信unset()&需要一个foreach循环,但我老实说不确定如何。我不确定如何将foreach用于特定的内部数组值,而是使用所有外部数组值。

编辑:目前的进展基本上是在无聊地徘徊:

        foreach($tempArray{$i} as $key => $value) {
            if ($value[2] == 33) { unset($array[$key]); }
        }

2 个答案:

答案 0 :(得分:5)

嗯,你有点尝试过,所以试试这个:

foreach($array as $key => $val) {
    if($val[2] == 33) {
        unset($array[$key]);
    }
}

不确定$tempArray{$i}是什么。 foreach将迭代数组,您可以使用键和值。

答案 1 :(得分:2)

您可以使用不同的方法,使用PHP函数array_filterarray_column(这一个PHP 5.5 +);

$array = [
  ["A Name", 22, 33, 44, 55],
  ["Another", 33, 23, 14, 15]
];

print_r( 

$array[
    key(
        array_filter(
            array_column($array,2), function($a){
                if ($a == 33)
                   return false;
            return true;
        })
    )
]


);