массив 1: $ tags_resultСравнение двух массивов объектов с array_udiff
array (size=4)
0 =>
object(stdClass)[8]
public 'id_tag' => string '2' (length=1)
public 'tag' => string 'tag 1' (length=5)
1 =>
object(stdClass)[9]
public 'id_tag' => string '5' (length=1)
public 'tag' => string 'tag 4' (length=5)
2 =>
object(stdClass)[10]
public 'id_tag' => string '6' (length=1)
public 'tag' => string 'tag 7' (length=5)
3 =>
object(stdClass)[11]
public 'id_tag' => string '7' (length=1)
public 'tag' => string 'tag 9' (length=5)
Массив 2: $ post_tags_result
array (size=2)
0 =>
object(stdClass)[5]
public 'id_tag' => string '2' (length=1)
public 'tag' => string 'tag 1' (length=5)
1 =>
object(stdClass)[6]
public 'id_tag' => string '6' (length=1)
public 'tag' => string 'tag 7' (length=5)
Я пытаюсь извлечь значения из массива 1, которые не появляются в массив 2:
function foo($tags_result, $post_tags_result){
return $tags_result->id_tag != $post_tags_result->id_tag;
}
$difference_tags = array_udiff($tags_result, $post_tags_result, 'foo');
Но результат возвращает общее значение: тег 1. Я ожидаю, просто помечать 4 и тег 9.
array (size=3)
0 =>
object(stdClass)[8]
public 'id_tag' => string '2' (length=1)
public 'tag' => string 'tag 1' (length=5)
1 =>
object(stdClass)[9]
public 'id_tag' => string '5' (length=1)
public 'tag' => string 'tag 4' (length=5)
3 =>
object(stdClass)[11]
public 'id_tag' => string '7' (length=1)
public 'tag' => string 'tag 9' (length=5)