leMar
@leMar

Как работает array_uintersect?

Есть массивы такого вида
Array
(
    [78] => stdClass Object
        (
            [term_id] => 78
            [name] => Coca-Cola
            [slug] => coca-cola
            [term_group] => 0
            [term_order] => 0
            [term_taxonomy_id] => 78
            [taxonomy] => post_tag
            [description] => 
            [parent] => 0
            [count] => 573
            [object_id] => 49881
        )

    [2886] => stdClass Object
        (
            [term_id] => 2886
            [name] => реклама
            [slug] => reklama
            [term_group] => 0
            [term_order] => 0
            [term_taxonomy_id] => 2894
            [taxonomy] => post_tag
            [description] => 
            [parent] => 0
            [count] => 7
            [object_id] => 49881
        )

    [1853] => stdClass Object
        (
            [term_id] => 1853
            [name] => социальные проекты
            [slug] => socialnye-proekty
            [term_group] => 0
            [term_order] => 0
            [term_taxonomy_id] => 1856
            [taxonomy] => post_tag
            [description] => 
            [parent] => 0
            [count] => 383
            [object_id] => 49881
        )


Сравниваю их вот так
								function check ($a1, $a2) {
										if ($a1->term_id === $a2->term_id) {
											return 0;
										}

										if ($a1->term_id > $a2->term->id) {
											return 1;
										}

										return -1;
										// echo 'a1: '.$a1->name.' '.$a1->term_id;
										// echo "<br>";
										// echo 'a2: '.$a2->name.' '.$a2->term_id;
										// echo "<br> ====  <br>";
									}


Никакого эффекта. Я даже вывел процесс. И не очень понял как это, вообще работает. Например, строчки и первого массива, запросто сравниваются сами с собой, и со вторым так же. Что я сделал не так?
  • Вопрос задан
  • 3175 просмотров
Решения вопроса 1
mekegi
@mekegi
term_id и term->id это не одно и тоже. В первом варианте который не работал у вас term->id во втором «рабочем» term_id
Обычная опечатка
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Funcraft
@Funcraft
Что-то не понял: вы пишите про массивы, но в «сравниваю их» объекты. Что вы в итоге хотите сравнить?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы