如何在php中从数组中删除元素?
我做了很多研究,但我不知道如何在PHP中从数组中删除元素。在Java中,如果你有一个如何在php中从数组中删除元素?,php,arrays,Php,Arrays,我做了很多研究,但我不知道如何在PHP中从数组中删除元素。在Java中,如果你有一个ArrayList列表,你会说list.remove(someObject) 在PHP中有类似的功能吗?我发现unset($array[$index]),但它似乎不起作用 提前谢谢你的帮助 取消设置($array[$index])实际工作。 我能想到的唯一问题是迭代此数组的方式。 只需使用foreach而不是for 还要确保$index包含正确的值 要测试阵列,可以使用var\u dump(): unset($a
ArrayList列表
,你会说list.remove(someObject)代码>
在PHP中有类似的功能吗?我发现unset($array[$index])代码>,但它似乎不起作用
提前谢谢你的帮助 取消设置($array[$index])代码>实际工作。
我能想到的唯一问题是迭代此数组的方式。
只需使用foreach
而不是for
还要确保$index包含正确的值
要测试阵列,可以使用var\u dump()
:
unset($array[$index])代码>实际工作。
我能想到的唯一问题是迭代此数组的方式。
只需使用foreach
而不是for
还要确保$index包含正确的值
要测试阵列,可以使用var\u dump()
:
unset
应该可以工作,您也可以尝试以下方法:
$array = array_merge(
array_slice($array, 0, $index),
array_slice($array, $index+1)
);
unset
应该可以工作,您也可以尝试以下方法:
$array = array_merge(
array_slice($array, 0, $index),
array_slice($array, $index+1)
);
您需要删除它并删除空阵列:
function remove_empty($ar){
$aar = array();
while(list($key, $val) = each($ar)){
if (is_array($val)){
$val = remove_empty($val);
if (count($val)!=0){
$aar[$key] = $val;
}
}
else {
if (trim($val) != ""){
$aar[$key] = $val;
}
}
}
unset($ar);
return $aar;
}
remove_empty(数组(1,2,3',,5))返回数组(1,2,3,5)您需要删除它并删除空数组:
function remove_empty($ar){
$aar = array();
while(list($key, $val) = each($ar)){
if (is_array($val)){
$val = remove_empty($val);
if (count($val)!=0){
$aar[$key] = $val;
}
}
else {
if (trim($val) != ""){
$aar[$key] = $val;
}
}
}
unset($ar);
return $aar;
}
remove_empty(array(1,2,3',,5))返回array(1,2,3,5)如果只想删除一个数组元素,可以使用unset()
或替代array_splice()
取消设置()
例如:
代码
<?php
$array = array(0 => "x", 1 => "y", 2 => "z");
unset($array[1]);
//If you want to delete the second index ie, array[1]
?>
如果只想删除一个数组元素,可以使用unset()
或替代方法array\u splice()
取消设置()
例如:
代码
<?php
$array = array(0 => "x", 1 => "y", 2 => "z");
unset($array[1]);
//If you want to delete the second index ie, array[1]
?>
定义似乎不起作用
取消设置
是正确的。您是如何确定它不起作用的?Unset可以起作用,但可能您的索引是int,而用于Unset的索引是字符串?我将定义它似乎不起作用:当您使用Unset时,我已经读到数组没有“重新索引”。然后我使用了array_值($array),但是我也不确定这是否有效。请看这个定义似乎不起作用取消设置是正确的。您是如何确定它不起作用的?Unset可以起作用,但可能您的索引是int,而用于Unset的索引是字符串?我将定义它似乎不起作用:当您使用Unset时,我已经读到数组没有“重新索引”。然后我使用了array_值($array),但是我也不确定这是否有效。看这个,假设我有一个数组$cars[0]=“Volvo”$汽车[1]=“宝马”$汽车[2]=“丰田”;当我说unset($cars[0])时,我只剩下[1]和[2]了,对吗?假设我有这个数组$cars[0]=“Volvo”$汽车[1]=“宝马”$汽车[2]=“丰田”;当我说unset($cars[0])时,我只剩下[1]和[2]了,对吗?将数组分为2个子数组,不包含要删除的元素,然后将它们合并到oneslices数组中,再将它们合并到2个子数组中,不包含要删除的元素,然后将它们合并到一个子数组中。因此,如果我有[1]、[2]、[3]、[4],我将[2]删除,我希望数组对数组重新编制索引,所以我得到的不是[1]、[3]、[4],而是[1]、[2]、[3]、[3],所以如果我有[1]、[2]、[3]、[4],然后删除[2],我希望数组对数组重新编制索引,所以我得到的不是[1]、[3]、[4],而是[1]、[2]、[3]