$tab
テーブルの「行」であるオブジェクトの配列があります(つまり、「 $tab[$i]->columnname
.
$tab_json
AJAX呼び出しの戻り値であり、テーブルの「行」も含むオブジェクトの別の配列があります(つまり、「 $tab_json[$i]->columnname
.
両方の配列にはまったく同じ列が含まれていますが、どの列が に存在しないかを「推測」したい$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";
?>