我看到了许多类似的问题,但是如果任何值为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]); }
}
答案 0 :(得分:5)
嗯,你有点尝试过,所以试试这个:
foreach($array as $key => $val) {
if($val[2] == 33) {
unset($array[$key]);
}
}
不确定$tempArray{$i}
是什么。 foreach
将迭代数组,您可以使用键和值。
答案 1 :(得分:2)
您可以使用不同的方法,使用PHP函数array_filter
和array_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;
})
)
]
);