【问题标题】:How to count then remove duplicated from for each loop?如何计算然后从 foreach 循环中删除重复项?
【发布时间】:2017-06-15 22:55:12
【问题描述】:

我正在回应一个名为skill_tagging 的列,删除了空格和一些标点符号。但是,我的目标是计算重复项以删除/合并它们。

输出示例: 第(4)项第(15)项第(2)项

<?php

while ($row = $sql->fetch()) {
    $skill_tagging = $row['skill_tagging'];
    $count         = "???";
    if ($skill_tagging !== null) {

        $chars = preg_quote('|/\.,:;_+', '/');
        $lines = preg_split('/[' . $chars . ']/', $skill_tagging);

        foreach ($lines as $line) {
            echo "<span class='tag_count'>" . $count . "</span><span value='$line'  class='tag_item_search'>" . $line . "</span>";
        }
    } else {
    }
}

【问题讨论】:

  • $row 的配音或$line 的配音?
  • 重复的$line
  • 提示:如果您正在使用数组,那么您可以使用array_count_values()array_unique()
  • 所以,通过$result = array_count_values($lines) 计数并通过$lines = array_unique($lines) 删除;
  • 如果 $lines = array_unique($lines) 那么它将删除 preg_split。我试过这个,我想出了一个错误说array_unique() expects parameter 1 to be array, null given

标签: php foreach duplicates


【解决方案1】:

您可以使用array_unique 删除重复项并使用array_diff 进行计数

【讨论】:

  • 我不熟悉那个,我怎么能把它整合到我已经拥有的东西中,如果你能给我提供要点将不胜感激?
  • $skill_tagging = $row['skill_tagging']; $skill_unique = array_unique($skill_tagging); $count = array_diff($skill_tagging, $skill_unique);
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 2021-09-18
  • 2020-04-19
  • 1970-01-01
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多