基于PHP中的数组计数比较大量数组

时间:2017-05-19 15:13:35

标签: php arrays

在我浪费时间尝试一堆不同的东西之前,我想在这里问一下是否有人有一个很好的策略。

我在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 />';

给我一​​个这样的输出:

enter image description here

所以,我认为这是第一步。正如我所说,我有大约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.
)

在变量中显示,然后计算。

1 个答案:

答案 0 :(得分:1)

不是按照您当前的步骤输出结果,而是将它们附加到按计数分组的数组中。

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

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

foreach ($groups as $count => $ids) {
    echo '<br />' . 'ARRAY COUNT: ' . $count. '<br />';
    echo '<br />' . 'ID: ' . implode(', ', $ids) . '<br />';
}
但是,我对wordpress并不熟悉。从普通的PHP角度来看,这就是我的问题。根据评论中的建议,使用wordpress可能有更好的方法。