删除数组值

时间:2012-08-31 08:37:58

标签: php arrays

[0] => LR-153-TKW
[1] => Klaten
[2] => Rectangular
[3] => 12x135x97

我有一个看起来像这样的数组。我想完全删除12x135x97到母阵列,所以我该怎么做?

4 个答案:

答案 0 :(得分:4)

您可以使用unset($arr[3]);。它将删除该数组索引。只要您想删除数组值,就可以使用PHP unset() method

当你被问到评论时: basically i just want to remove all index that have "X**X" this pattern digit 'x' digit

以下是您可以使用的代码:

    $arr = array("LR-153-TKW", "Klaten", "Rectangular", "12x135x97", "xxxx");
    $pattern_matched_array = preg_grep("/^[0-9]+x[0-9]+x[0-9]*/", $arr);
    if(count($pattern_matched_array) > 0)
    {
        foreach($pattern_matched_array as $key => $value)
        {
            unset($arr[$key]);
        }
    }
    print_r($arr);

答案 1 :(得分:1)

PHP有unset()函数。您可以使用它来删除变量或数组索引。

unset($your_var[3]);

请参阅http://php.net/manual/en/function.unset.php

答案 2 :(得分:0)

使用unset,找到它可以执行此操作:

for($i = 0; $i < count($array); $i++){
    if($i == "12x135x97"){
        unset($array[i]);
        break;
    }
}

除非你知道密钥,否则你可以这样做:

unset($array[3]);

如果你的数组长达数千个项目,它的效率并不是最快的,但是对于这项工作来说就足够了。

要将其转换为方法,可以实现更好的编码。

function removeItem($item){
    for($i = 0; $i < count($array); $i++){
        if($i == $item){
            unset($array[i]);
            break;
        }
    }
    return $array;
}

并称之为:

removeItem("12x135x97");

答案 3 :(得分:0)

你有很多选择: 如果你知道数组密钥,那么你可以这样做

unset($arrayName[3]);

或者它总是在数组末尾

array_pop($arrayName);

这将删除数组中的最后一个值