Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中从数组中删除元素?_Php_Arrays - Fatal编程技术网

如何在php中从数组中删除元素?

如何在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

我做了很多研究,但我不知道如何在PHP中从数组中删除元素。在Java中,如果你有一个
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]