2017-09-13 5 views
0

Ich habe zwei stdClass Objekte nämlichKönnen Sie zwei stdClass-Arrays vergleichen und aktualisieren?

stdClass Object 
(
    [apple] => 10 
    [orange] => 10 
    [grape] => 10 
    [banana] => 20 
    [mango] => 30 
) 

stdClass Object 
(
    [apple] => 15 
) 

Kann ich Apfel wie ein normales Array Betrieb aktualisieren? Oder gibt es einen anderen Weg?

Auch was ist der Unterschied zwischen diesem und einem normalen Array?

+1

Das sind Objekte, nicht Arrays. – Script47

+0

Mögliches Duplikat von [Objekteigenschaften vergleichen und in PHP anzeigen] (https://stackoverflow.com/questions/5911067/compare-object-properties-and-show-diff-in-php) –

Antwort

0

Sie würden Schleife durch sie eine normale foreach Schleife:

$obj = new StdClass; 

$obj->test = 1; 
$obj->more_testing = 2; 

foreach ($obj as $key => $value) { 
    echo $key . ': ' . $value . '\n\n'; 
} 

oder man könnte sie als ein Ihre Objekte als Array werfen (array) verwenden.

Live-Beispiel

Repl

Lesestoff

Iterations

+0

Dies funktioniert nur für öffentliche Felder . –

0

finden Sie in der offiziellen Dokumentation auf comparing objects:

Mit dem Vergleichsoperator (==) werden Objektvariablen auf einfache Weise verglichen, nämlich: Zwei Objektinstanzen sind gleich, wenn sie dieselben Attribute und Werte haben (Werte werden mit == verglichen) und sind Instanzen der selbe Klasse.

Bei Verwendung des Identity-Operators (===) sind Objektvariablen genau dann identisch, wenn sie sich auf dieselbe Instanz derselben Klasse beziehen.

Auch finden Sie hier: What's the fastest way to compare two objects in PHP?

Verwandte Themen