在PHP中分组并减少行号

在PHP中分组并减少行号,php,Php,如何对阵列中的重复项进行分组和删除 $list = [ '01 02 03', '01 02 04', '01 02 05', '01 02 06', '01 03 04', '01 03 05', '01 03 06', '01 04 05', '01 04 06', '01 05 06', '02 03 04', '02 03 05', '02 03 06', '02 04 05', '02 04 06', '02 05 06', '03 0

如何对阵列中的重复项进行分组和删除

$list    = [
    '01 02 03', '01 02 04', '01 02 05', '01 02 06', 
    '01 03 04', '01 03 05', '01 03 06', '01 04 05', 
    '01 04 06', '01 05 06', '02 03 04', '02 03 05',
    '02 03 06', '02 04 05', '02 04 06', '02 05 06',
    '03 04 05', '03 04 06', '03 05 06', '04 05 06'
];

$x = 1;
$y = 2;

for($i=0; $i <= count($list)-3; $i++){
    $first   = $list[$i];
    $second  = $list[$x];
    $third   = $list[$y];
    $_second = explode(" ", $second);
    $_first  = explode(" ", $first);
    $_third  = explode(" ", $third);

    $result[]  = array_unique(array_merge($_first, $_second, $_third));
    sort($result[$i]);
    $x++;
    $y++;
}
$list=[
'01 02 03', '01 02 04', '01 02 05', '01 02 06', 
'01 03 04', '01 03 05', '01 03 06', '01 04 05', 
'01 04 06', '01 05 06', '02 03 04', '02 03 05',
'02 03 06', '02 04 05', '02 04 06', '02 05 06',
'03 04 05', '03 04 06', '03 05 06', '04 05 06'
];
$x=1;
$y=2;

对于($i=0;$i),我试图为您解决这个问题,下面是工作原理

$list=[
'01 02 03', '01 02 04', '01 02 05', '01 02 06',
'01 03 04', '01 03 05', '01 03 06', '01 04 05',
'01 04 06', '01 05 06', '02 03 04', '02 03 05',
'02 03 06', '02 04 05', '02 04 06', '02 05 06',
'03 04 05', '03 04 06', '03 05 06', '04 05 06',
];
$arr=数组值(数组唯一(爆炸(“”,内爆(“”,$list));
$min=(int)min($arr);
$max=(int)max($arr);
函数查找顺序($min、$max、$max\u 1、$res){
对于($j=0;$j<5;$j++){
如果($min!=$max_1){

对于($i=$min;$i欢迎来到SO@Leonardo,你可以包括你得到的和你期望的,这对解决你的问题有很大帮助。如果有一个行变量,例如01 02 03 04 05…04 05 06 07 08,我想分成6个组和28行,例如01 02 03 04 05 06…03 04 04 05 06 07 08如何申请code@LeonardoMachado抱歉,我不理解这个问题,请发布另一个问题并解释它,并在评论中分享你问题的链接,当我有空时,我可能会尝试为你解决它。另外,请尝试理解上面的
findSequence()
function您需要的所有逻辑都在这里,否则只需从数据或支持数据中找到最小值和最大值。对不起,我不会说英语,但在这里我找到了最佳解决方案,因此我用您的语言进行了研究。我将在这里发布与示例组的链接。
$list = [
    '01 02 03', '01 02 04', '01 02 05', '01 02 06',
    '01 03 04', '01 03 05', '01 03 06', '01 04 05',
    '01 04 06', '01 05 06', '02 03 04', '02 03 05',
    '02 03 06', '02 04 05', '02 04 06', '02 05 06',
    '03 04 05', '03 04 06', '03 05 06', '04 05 06',
];

$arr = array_values(array_unique(explode(' ', implode(' ', $list))));

$min = (int) min($arr);
$max = (int) max($arr);

function findSequence($min, $max, $max_1, $res) {

    for($j = 0; $j < 5; $j++){
        if ($min != $max_1) {
            for ($i = $min; $i <= $max; $i++) {
                if ($i == $max_1) {
                    continue;
                } else {
                    $res .= "0" . $i . " ";
                }
            }
            $max_1--;
            $res = trim($res)."\r\n";
        }else{
           for ($i = $min; $i <= $max; $i++) {
                if ($i == $max_1) {
                    continue;
                } else {
                    $res .= "0" . $i . " ";
                }
            }
            $max_1--;
            $res = trim($res)."\r\n"; 
        }
    }
    return $res;
}

$max_1 = $max;
$max_1--;
$result = findSequence($min, $max, $max_1, "\r\n");

print_r($result);