Удалить повторяющийся элемент в другом массиве

90
29 апреля 2021, 23:40

так выглядит массив каждого пользователя. У каждого пользователя есть массив , в котором записана строка JSON и надо , чтоб , если в где то какой то пункт повторяется , то его удалить или тип этого ,так как выводить его не надо , потому что в конце надо сохранить всё и не важно кто что выбрал во время игры. Главное конечный результат и если два раза что то повторяется , то надо записать вывести как один раз..

Пользователь один

array (size=2)
0 => string '"{"cards1":["Study","Computer",null],"cards2":["Study
","notebook",null],"cards3":["Study","Pen",null]}"' (length=201)
1 => string '"{"cards1":["Sport","Speed",null],"cards2":["Sport","Power",null],"cards3":["Sport","Reaction",null]}"' (length=201)```
Пользователь два 
array (size=2)
0 => string '"{"cards1":["Study","Book",null],"cards2":["Study
","eraser",null],"cards3":["Study","Pen",null]}"' (length=201)
1 => string '"{"cards1":["Sport","Speed",null],"cards2":["Sport","Power",null],"cards3":["Sport","Endurance",null]}"' (length=201)

Надо сделать , чтоб , если повторяется что то , то выводить только один раз. К примеру у обоих пользователей повторилась в разделе Учёбы "тетрадь" следовательно выводим один раз. В разделе Спорта у них повторилась Скорость и сила =>выводим один раз. З.Ы. пользователей может быть и два и три и десять. так выглядит мой код

$company_name =  get_user_meta(  $cur_user_id, 'company' );
$params = array(
    'meta_query' => array(
        array( 
            'key'     => 'company',
            'value'   => $company_name[0],
        ),
    )
 );
//закинул нужных пользователей в массив. 
$uq = new WP_User_Query( $params );
if ( ! empty( $uq->results ) ) {
   //беру первого пользователя из массива 
    foreach ( $uq->results as $k=>$u ) {
        echo '<p>' . $u->ID . 'dddd</p>';
        echo '<p>' . $u->user_email . '</p>';
        $array =  get_user_meta(  $u->ID, 'json' );
        //пытаюсь взять второго пользователя из массива, но не выходит
        foreach ( $uq->results as $k=>$u_next ) {
            $uq->results[$k+1];
            echo '<p>' . $u_next->ID . 'dsfdsfdfs</p>';
            echo '<p>' . $u_next->user_email . '</p>';
            $array_next =  get_user_meta(  $u_next->ID, 'json' );
            //беру массив первого пользователя и вот этот JSON декодирую
            foreach ($array as $key => $value) {
                $array_first = (json_decode (trim ($value, '"'), true)); 
               //беру массив второго пользователя и вот этот JSON декодирую   
                foreach ($array_next as $key => $value) {
                    $array_second = (json_decode (trim ($value, '"'), true)); 
                    //пытаюсь сравнивать между собой и, если повторяется то удалять и потом вывожу, но  мне кажется вывод ещё рано делать , так как ему через всех пользователей пройтись надо...
                    if($array_first['cards1'][1] == $array_second['cards1'][1]){
                        unset($array_next[$key]);
                    }else if($array_first['cards1'][2] == $array_second['cards1'][2]){
                        unset($array_next[$key]);
                    }else if($array_first['cards2'][1] == $array_second['cards2'][1]){
                        unset($array_next[$key]);
                    }else if($array_first['cards2'][2] == $array_second['cards2'][2]){
                        unset($array_next[$key]);
                    }else if($array_first['cards3'][1] == $array_second['cards3'][1]){
                        unset($array_next[$key]);
                    }else if($array_first['cards3'][2] == $array_second['cards3'][2]){
                        unset($array_next[$key]);
                    }   
                    ?>
                    <div class="category-result-title"><?php echo $array_second['cards1'][0] ?></div> 
                        <div class="container-result">
                            <div class="hexagon hexagon-center-result">
                                <div class="wrap"><?php echo $array_second['cards1'][1];?></div>
                                </div>
                            <div class="hexagon hexagon-center-result">
                                <div class="wrap"><?php echo $array_second['cards2'][1];  ?></div>
                            </div>
                            <div class="hexagon hexagon-center-result">
                                <div class="wrap"><?php echo $array_second['cards3'][1];?></div>
                            </div>
                        </div>
                        <?php 
                    }
                }
            }   
    }

Пользователь один

array (size=2)
0 => string '"{"cards1":["Study","Computer",null],"cards2":["Study
","notebook",null],"cards3":["Study","Pen",null]}"' (length=201)
1 => string '"{"cards1":["Sport","Speed",null],"cards2":["Sport","Power",null],"cards3":["Sport","Reaction",null]}"' (length=201)```
Пользователь два 
array (size=2)
0 => string '"{"cards1":["Study","Book",null],"cards2":["Study
","eraser",null],"cards3":["Study","Pen",null]}"' (length=201)
1 => string '"{"cards1":["Sport","Speed",null],"cards2":["Sport","Power",null],"cards3":["Sport","Endurance",null]}"' (length=201)

Надо вывести так Computer,notebook, pen , speed, power,reaction Book, eraser,Endurance

Пожалуйста , помогите , что то у меня не выходит

READ ALSO
PHP скрипты запускаются через 4 минуты от запуска машины

PHP скрипты запускаются через 4 минуты от запуска машины

Всё стояло на PHP 5, запускается машина, CRON запускает скриптыУстановил PHP 7

87
Комментирование в phpstorm

Комментирование в phpstorm

Нужно, чтобы при нажатии Ctrl + / комментировался кодСейчас при нажатии этих клавиш сворачивается блок

106
Персер php забрать один из двух элементов

Персер php забрать один из двух элементов

Парсер DiDOM (https://githubcom/Imangazaliev/DiDOM/blob/master/README-RU

127