简体   繁体   English

比较数组中的值与其他所有值

[英]Compare values from array with every other value

I have an array like so: 我有一个像这样的数组:

$array = [['name'=> 'one'], ['name'=>'two'],['name'=> 'three'], ['name'=>'four']];

I want to compare/print every combination from that array: 我想比较/打印该数组中的每个组合:

one -> two one -> three ... two -> three two -> four 一->二一->三...二->三二->四

and so on... 等等...

I tried 我试过了

<?php foreach ($compares as $k1 => $v1 ){
    echo $v1->id.'<br>';

    foreach ($compares2 as $k2 => $v2 ){
        if($k1 == $k2) echo $v2->id.'<br>';
    }
}

?>

I don't know if I understand your requirements correctly (I can modify it if you want). 我不知道我是否正确理解您的要求(如果需要,我可以对其进行修改)。 Have a look at this example: 看一下这个例子:

<?php

$array = [
    ['name'=> 'one'], 
    ['name'=>'two'],
    ['name'=> 'three'], 
    ['name'=>'four']
];

for ($i = 0; $i < count($array)-1; $i++) {
    for ($j = $i+1; $j < count($array); $j++) {
        echo $array[$i]['name'] . ' > ';
        echo $array[$j]['name'] . '<br>';
    }
}

Pavels answer seem to be right, maybe you should check your values for duplicates? Pavels的回答似乎是正确的,也许您应该检查您的值是否重复?

<?php

$array = [['id'=> 'one'],['id'=>'two'],['id'=> 'three'],['id'=>'four']];

for ($i = 0; $i < count($array)-1; $i++) {
    for ($j = $i+1; $j < count($array); $j++) {
        echo $array[$i]['id'] . ' - ';
        echo $array[$j]['id'] . '<br>';
    }
} 

?>

OUTPUT: OUTPUT:

one - two
one - three
one - four
two - three
two - four
three - four

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM