我有一个看起来像的数组
Array
(
[0] => 1213059
[1] => 1213063
[2] =>
[3] =>
[4] => 1213072
)
我想做如下:
Array
(
[0] => 1213059
[1] => 1213063
[2] => 1213072
)
有人能帮我吗?
非常感谢
使用array_filter
点击此处查看演示:
array_values(array_filter($your_array));
以数字形式保存您的密钥。
array_filter
将删除所有评估为false的元素:
$array = array_filter($array);
我不认为上面的答案给出了正确的字段顺序。如果你只想从数组中删除一些字段,并保持键的顺序不变,你可以用来完成
array_filter($arr) or with unset($arr[$i])
但如果你想获得新的密钥顺序,所以没有"洞",在上面的例子中,要将密钥4设置为密钥2,因为密钥2和3是未设置的,你必须使用
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)
知道不按应该的方式对数组进行排序,所以为了以防万一,在#EDITED 末尾添加$arr=array_values($arr);
链接上有ksort()
的PHP参考。
您可以使用此解决方法。
在某处定义此功能:
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);
我觉得这不是最有效的方法,但效果很好。