gpt4 book ai didi

php - 将数组项与数组中的其他项进行一次比较

转载 作者:可可西里 更新时间:2023-11-01 00:41:52 26 4
gpt4 key购买 nike

我有一个 PHP 数组,其中包含 2-5 个项目。

$z=["itema", "itemb", "itemc", "itemd","iteme"];

我需要有一种方法来遍历数组并将每个项目相互匹配一次。所以输出看起来像

itema vs itemb
itema vs itemc
itema vs itemd
itema vs iteme

itemb vs itemc
itemb vs itemd
itemb vs iteme

itemc vs itemd...ect

我似乎无法让循环命中每个项目。我认为它必须是一个循环中的一个循环,因为我只有一个循环不起作用。

而且它必须只去每个一次。我很迷茫如何让它发挥作用。任何帮助将不胜感激。

最佳答案

你可以使用两个for循环

$count = count($z);
for ($i = 0; $i < $count - 1; $i++) {
for ($j = $i + 1; $j < $count; $j++) {
// compare $z[$i] with $z[$j]...
}
}

另一个循环从 0 到 n - 2,内部循环以外部值的值作为初始值,然后结束。


如果您还需要处理关联数组,就像一位评论者提到的那样,您可以使用 array_values(和 array_keys)来处理这种情况。

$values = array_values($z);
$keys = array_keys($z); // optional - only used, if you need the keys..
$count = count($values);
for ($i = 0; $i < $count - 1; $i++) {
for ($j = $i + 1; $j < $count; $j++) {
// compare $values[$i] with $values[$j]...
// or $keys[$i] with $keys[$j];
}
}

Note: A foreach loop won't work in either case, because you can't told the inner loop to skip all values, already seen in the outher loop. And teaching the foreach loop this behavior would result in a foreach, that effectly looks like a simple for loop and is slower. There's simply no benefit in using a foreach.

关于php - 将数组项与数组中的其他项进行一次比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33741890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com