【问题标题】:Comparing a Large Amount of Arrays based off Array Count in PHP在 PHP 中根据数组计数比较大量数组
【发布时间】:2017-05-19 15:13:34
【问题描述】:

在我浪费时间尝试一堆不同的事情之前,我想在这里问问是否有人对此有好的策略。

我在while 循环中生成了近 3,000 个数组。也许我认为有价值的是我可以附加即将成为数组的ID

$results = $mysqli->query("SELECT ID, post_content
                           FROM wp_posts
                           WHERE post_type = 'product';");

while($row = $results->fetch_array()) {

      $id2 = $row['ID'];
      $id = mysqli_real_escape_string($mysqli, $id2);

重要的是要注意,当我说比较这些数组时,我并不是要根据它们的内容来比较它们,而是要根据数组中的节点数来比较它们。

所以我当然可以轻松做到这一点

$arraycount = count($wp_post_array);

因此我可以得到我需要的两个东西:数组的唯一 IDcount

echo '<br />' . 'ID: ' . $id. '<br />';
echo '<br />' . 'ARRAY COUNT: ' . $arraycount . '<br />';

给我这样的输出:

所以,我认为这是第一步。正如我所说,我有大约 3,000 个,所以手动尝试匹配这些不是我想做的事情。

我的输出(只是为了这个问题 - 只要我能够比较,我真的不在乎它是什么),可能看起来像:

ARRAY COUNT: 55
ID: 5740, 8805, ..., etc

有没有人做过这样的事情?如果我使用 2 或 3 个阵列,我敢肯定会有一个简单的解决方案,但如果是数千个?我不确定最聪明的策略是什么。是否有一个内置的 PHP 函数可以帮助我,或者一个库,或者只是一个聪明的想法来让这些来比较数组计数?

编辑:

样本数组

Array
(
    [0] => Arcu Magna Accessus 16-03 AB Class non Nunc Corrupti Elit Sit 4" Provocatus
    [1] => 6" Superue Tibi Sit
    [2] => 6380-0362
    [3] => Quos Porro Oppressu EA
    [4] => Leo id Louor & Quam Tibi Commune
    [5] => Memoriam:
    [6] => mE Magni Illa Harusen
    [7] => eA Quos Elit Armorum
    [8] => Responsuros Louor:
    [9] => 939/07 Hac A/Lorem molfstum
    [10] => Ex successum ex dominatio justo fortitudinis sed rem ornare hac hic successus li urna iucunda usus hac te nemo vulputate.
)

在变量中观察,然后计算。

【问题讨论】:

  • 你是说 wp_posts.post_content 包含一个序列化的数组吗?这是一个 Wordpress 表格吗?如果不是,那么解决方案(像往常一样)是标准化您的数组。它远不清楚你想用你描述的“输出”做什么。你没有说表的结构是什么,也没有说是否可以改变。投票结束。
  • 不,你看得太远了。它是 WordPress,但这无关紧要。它们只是带有文本字符串和 while 循环中的数组计数的简单数组。如果有帮助,我会使用示例数组更新问题。
  • 您正在使用自己的代码填充此数据??????!!!!!!天哪!!!!!!
  • ?不知道你在说什么或暗示什么
  • $wp_post_array 来自哪里?

标签: php arrays


【解决方案1】:

不要像当前那样输出结果,而是将它们附加到按计数分组的数组中。

$groups[$arraycount][] = $id;

然后你可以迭代得到你想要的结果。

foreach ($groups as $count => $ids) {
    echo '<br />' . 'ARRAY COUNT: ' . $count. '<br />';
    echo '<br />' . 'ID: ' . implode(', ', $ids) . '<br />';
}

不过,我对 wordpress 并不是很熟悉。从普通 PHP 的角度来看,这正是我认为的问题。按照 cmets 的建议,使用 wordpress 可能有更好的方法。

【讨论】:

  • 绝对完美!非常感谢 - 也有几行代码。输出正是想要的。你可能为我节省了几天的时间来处理不同的事情。非常感谢。
猜你喜欢
  • 2016-03-08
  • 2012-12-06
  • 1970-01-01
  • 2018-06-22
  • 2018-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
相关资源
最近更新 更多