unset пары, если совпадают и никогда не повторяются php

Как я могу сбросить пары, если совпадают?

 $pair = array(
                  array('number' => 1000),
                  array('number' => 2000),
                  array('number' => 3000),
                  array('number' => 2000),
                  array('number' => 2000)
                 );
if(sizeof($pair) >= 2) {
    $i = 1;
    $pair_A  = $pair[0];
    while(sizeof($pair) > $i) {
       $pair_B = $pair[$i];
       if($pair_A['number']  == $pair_B['number']) {
           //with match
       } else {
           //no match
       }
       $i++;
       unset($pair_B);
    }
    unset($pair_A);
}

Значение переменной $pair_A всегда повторяется, даже если я ее отключил.

Я хочу получить результат в паре с двумя:

1. No Match = 1000   empty
2. Match with #4 = 2000  2000
3. No Match = 3000   empty
4. Match with #2 = 2000 2000
5. No Match = 2000 empty

Если совпадение, соответствующее значение также будет соответствовать как #2 и #3 (наоборот, сопоставление, я думаю).

Это возможно? Пожалуйста, помогите мне, у меня проблемы в этом потоке уже несколько месяцев... Я надеюсь, что вы, ребята, можете мне помочь.

1 ответ

Решение

Ваш необходимый вывод придет сюда.

<?php
$pair = array(
            array('number' => 1000),
            array('number' => 2000),
            array('number' => 3000),
            array('number' => 2000),
            array('number' => 2000)
           );

foreach($pair as $key1=>$array1) {
    $isMatched = false;
    foreach($pair as $key2=>$array2) {
        if($key1!=$key2 && $array1["number"]==$array2["number"]) {
            $key = $key2+1;
            $pair[$key2]["number"] = "";
            $data = "Match with #$key $array1[number] $array2[number]";
            $isMatched = true;
            break;
        }
    }

    $key1++;
    if($isMatched) {
        echo $key1.". ".$data."<br>";   
    } else {
        echo $key1.". No Match = $array1[number] empty"."<br>";
    }
}
?>

Выход:

1. No Match = 1000 empty
2. Match with #4 2000 2000
3. No Match = 3000 empty
4. Match with #2 2000 2000
5. No Match = 2000 empty
Другие вопросы по тегам