0

我做了很多研究,但我不知道如何从 PHP 中的数组中删除元素。在 Java 中,如果你有一个ArrayList<SomeObject> list,你会说list.remove(someObject);.

你可以在 PHP 中做任何类似的事情吗?我找到unset($array[$index]);了,但它似乎不起作用。

提前感谢您的帮助!

4

4 回答 4

1

unset($array[$index]);确实有效。
我能想到的唯一问题是你迭代这个数组的方式。
只是使用foreach而不是for

还要确保 $index 包含正确的值

要测试您的阵列,您可以使用var_dump()

$cars[0]="Volvo"; 
$cars[1]="BMW"; 
$cars[2]="Toyota"; 

unset($cars[0]);
var_dump($cars);
于 2013-02-14T13:08:41.597 回答
1

unset应该工作,你也可以试试这个:

$array = array_merge(
             array_slice($array, 0, $index),
             array_slice($array, $index+1)
         );
于 2013-02-14T13:12:11.103 回答
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(array(1,2,3, '', 5)) 返回数组(1,2,3,5)

于 2013-02-14T13:16:09.583 回答
0

如果您只想删除一个数组元素,您可以使用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]
?>

输出

Array (
    [0] => a
    [2] => c
)
于 2017-09-28T12:06:50.840 回答