【问题标题】:PHP Check for double in array and delete last onePHP检查数组中的double并删除最后一个
【发布时间】:2015-02-19 07:53:45
【问题描述】:

我在过滤数组时遇到了问题!

我想按“模型”名称过滤,然后删除最后一个是双精度的。

在图片链接上可以看到数组结构。

第一张图片:

在第二张图片中,您可以看到我不想过滤的双精度值。

第二张图片:

我该怎么做?

【问题讨论】:

    标签: php arrays multidimensional-array filter


    【解决方案1】:

    希望我能理解你的问题。

    <?php 
    
    $models = [];
    
    // Loop through data
    foreach ($records as $key => $value) {
    
        $model = $value['model'];
    
        // If it already exists in the array
        if (isset($models["{$model}"])) {
            unset($records["{$key}"]);
        }
    
        $models["{$model}"] = $model;
    }
    
    ?>
    

    【讨论】:

      【解决方案2】:

      这是的答案: 鉴于您所有的产品都在 $arrData 中,并且键是连续的

      foreach($arrData as $key=>$record) {
        for($i=$key+1; $i < count($arrData); $i++) {
          if(isset($arrData[$i]) && $record['model'] == $arrData[$i]['model']) {
            unset($arrData[$i]);
          }
        }
      }
      

      【讨论】:

      • 感谢@thomas-l 的快速回答,但使用您的代码我删除了两个模型而不是最后一个模型,我该怎么做?
      • 我的代码删除了一个模型的除第一条记录之外的所有记录。我在3v4l.org/OUO84 上在线尝试过 - 所以也许我误解了你
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2022-09-24
      • 1970-01-01
      • 2022-01-10
      • 2012-12-24
      • 2018-10-28
      相关资源
      最近更新 更多