我的数组看起来像
Array
(
[0] => 1213059
[1] => 1213063
[2] =>
[3] =>
[4] => 1213072
)
我想这样做:
Array
(
[0] => 1213059
[1] => 1213063
[2] => 1213072
)
有人可以帮助我吗?
非常感谢
答案 0 :(得分:5)
答案 1 :(得分:4)
array_filter
将删除评估为false的所有元素:
$array = array_filter($array);
答案 2 :(得分:1)
我不认为上面的答案会给出正确的字段顺序,因为它被问到了。如果您只想从数组中删除某些字段并保持按键顺序不变,则可以使用
执行此操作 array_filter($arr) or with unset($arr[$i])
但是如果你想得到新的按键顺序,所以没有“漏洞”,在上面的例子中,当按键2和3未设置时将按键4设置为按键2,你必须使用
ksort($arr)
这是一个完整的例子:
$arr=array(1,1,3,2,0);
print_r($arr);
echo '<br>';
unset($arr[2]);
ksort($arr);
print_r($arr);
$arr=array_values($arr);#EDITED
ksort($arr)
知道不应该对数组进行排序,以防万一在最后添加$arr=array_values($arr);
#EDITED
ksort()
的PHP引用位于link。
答案 3 :(得分:0)
您可以使用此解决方法。
在某处定义此功能:
function removeArrElement($inArr, $elementNr) {
for ($i = $elementNr; $i < count($inArr) - 1; $i++) {
$inArr[$i] = $inArr[$i + 1];
}
unset($inArr[count($inArr) - 1]);
return $inArr;
}
然后,当你想从$ yourArray中删除特定元素时,请执行以下操作:
$yourArray = removeArrElement($yourArray, $nthElement);
我觉得这不是最有效的方法,但它运作良好。