У меня есть массив объектов $tab
, которые являются «строкой» из таблицы (например, вы можете получить доступ к каждому столбцу через "$tab[$i]->columnname
.Php: как вычислить различные между двумя массивами «похожих» объектов?
У меня есть еще один массив объектов $tab_json
, что является возвращением вызова AJAX, и что содержит, слишком, «строки» из таблицы (например, вы можете получить доступ к каждому столбцу через "$tab_json[$i]->columnname
.
Обе массивы содержат одни и те же colums, но я просто хотел бы, чтобы„угадать“, какие из них в $tab
не настоящее время в $tab_json
.
Конечно, я знаю array-intersect и array-diff функции, но они, похоже, не работают хорошо при сравнении объектов. Разве я не прав?
Вот пример, который я хотел бы работать, но есть исключение Php:
tab_json = PHP Catchable fatal error: Object of class stdClass could not be converted to string in sample.php on line 112
Просто скопируйте вставьте его и запустить его в файл (php -f filename.php
). Любая идея, как мне это сделать?
<?php
$tab = array(
(object)array(
'id' => 1,
'titre' => "Anchois",
'attributs' => array()
),
(object)array(
'id' => 4,
'titre' => "Jambon",
'attributs' => array()
),
(object)array(
'id' => 12,
'titre' => "La Cabro d'or",
'attributs' => array(
(object)array("id" => 1),
(object)array("id" => 8)
)
)
);
$tab_json = array (
(object)array(
'id' => 1,
'titre' => 'Anchois',
'attributs' =>
array (
),
),
(object)array(
'id' => 4,
'titre' => 'Jambon',
'attributs' =>
array (
),
),
(object)array(
'id' => 12,
'titre' => 'La Cabro d\'or',
'attributs' =>
array (
),
),
(object)array(
'id' => 25,
'titre' => 'Vin rouge ou rosé',
'attributs' =>
array (
),
),
(object)array(
'id' => 22,
'titre' => 'Crème oignons lardons',
'attributs' =>
array (
(object)array(
'id' => 1,
),
(object)array(
'id' => 2,
),
),
)
);
echo "tab = "; var_export($tab); echo "\n";
echo "tab_json = "; var_export($tab_json); echo "\n";
echo "tab_json = "; var_export(array_diff($tab_json,$tab)); echo "\n";
?>
Вы сравниваете идентичные объекты или разные объекты с одинаковыми данными? –
Объекты с теми же свойствами, но ** возможно меньше ** объектов, или ** возможно ** значения свойств изменились (это то, что я хочу угадать на самом деле) –
Я только что добавил конкретный образец, который я хотел бы работать. –