【问题标题】:Remove Array value删除数组值
【发布时间】:2012-08-26 01:23:25
【问题描述】:
[0] => LR-153-TKW
[1] => Klaten
[2] => Rectangular
[3] => 12x135x97

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

【问题讨论】:

  • 这个条目是否总是存在于数组的末尾?
  • unset()?在谷歌上找到这个问题的答案比在这里发布要少得多。你认真看了吗?
  • 什么是母数组?
  • 如果不知道数组索引stackoverflow.com/questions/1883421/…

标签: php arrays


【解决方案1】:

您可以使用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);

【讨论】:

【解决方案2】:

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

unset($your_var[3]);

http://php.net/manual/en/function.unset.php

【讨论】:

    【解决方案3】:

    使用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");
    

    【讨论】:

      【解决方案4】:

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

      unset($arrayName[3]);
      

      或者如果它总是在数组的末尾

      array_pop($arrayName);
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-12
        • 1970-01-01
        • 1970-01-01
        • 2018-03-31
        • 2014-10-12
        • 2012-07-22
        • 2016-04-06
        相关资源
        最近更新 更多