2015-11-16 38 views
1

我有一个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 

我似乎无法得到循环击中每个项目。我认为它必须是一个循环,因为我的一个循环不起作用。

它必须去每个只有一次。我很迷茫,如何让这个工作。任何帮助将非常感激。

+0

请提供您到目前为止的代码 - 它将帮助用户确定您的解决方案可能存在的问题。还要描述代码如何无法实现您的目标。 – Olga

回答

4

你可以使用两个for循环

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

其他回路从0到n - 2和内环从外取值值作为初始并且前进到结束

+0

就是这样!比你非常。我想我需要一个内部循环,但我无法正确地做到。 – workingxx

+0

@ Philipp祝贺10k – ProgrammingWithRandy

+0

@ProgrammingWithRandy thx – Philipp

0

未经测试,但这样的:

foreach($z as $item){ 
    foreach($z as $item2){ 
    if($item!=$item2){ 
     echo $item . ' vs ' . $item2; 
    } 
    } 
} 
0
<?php 
$z=["itema", "itemb", "itemc", "itemd","iteme"]; 

$sizeZ=count($z); 
for ($i = 0; $i < $sizeZ-1; $i++) 
{ 
    for ($j = $i+1; $j < $sizeZ; $j++) 
    { 
     echo $z[$i]." vs ".$z[$j]."<br>"; 
    } 
} 
?> 

输出:

itema vs itemb 
itema vs itemc 
itema vs itemd 
itema vs iteme 
itemb vs itemc 
itemb vs itemd 
itemb vs iteme 
itemc vs itemd 
itemc vs iteme 
itemd vs iteme 
相关问题