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

时间:2013-02-14 13:06:48

标签: php arrays

我做了很多研究,但我无法找到如何从PHP中删除数组中的元素。在Java中,如果您有ArrayList<SomeObject> list,则可以说list.remove(someObject);

你能用PHP做些什么吗?我找到了unset($array[$index]);,但它似乎没有用。

提前感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

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

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

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

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

unset($cars[0]);
var_dump($cars);

答案 1 :(得分:1)

unset应该有效,你也可以试试这个:

$array = array_merge(
             array_slice($array, 0, $index),
             array_slice($array, $index+1)
         );

答案 2 :(得分: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)

答案 3 :(得分: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
)