Ich erhalte verschiedene JSON-Objekte von einigen Websites. Diese Objekte sehen normalerweise nicht gleich aus.Komplette Arrays mit verschiedenen Schlüsseln
Wie kann ich die fehlenden Schlüssel an jeder Position des JSON-Objekts hinzufügen?
Hier haben Sie ein Beispiel das Objekt darzustellen gegeben
$data = new stdClass();
$data->a1 = ["name"=>"John","age"=>"27","phone"=>"5566634"];
$data->a2 = ["name"=>"Mark","age"=>"38","gender"=>"Male"];
Und das ist die gewünschte Ausgabe:
$data->a1 = ["name"=>"John","age"=>"27","phone"=>"5566634", "gender"=>"unknown"];
$data->a2 = ["name"=>"Mark","age"=>"38","phone"=>"unknown", "gender"=>"Male"];
Ich möchte nur auf jedem Array die gleichen Schlüssel haben
Was Ich habe versucht, das Objekt zu foreach und alle vorhandenen Schlüssel auf $arraykeys
zu speichern. Dann foreach wieder alle Objekt überprüfen, ob der aktuelle Schlüssel ist innerhalb der $arraykeys
erstellt, aber das ist wirklich langsam mit großen JSON-Objekte.
Was ich bisher versucht haben, alle Schlüssel zu erhalten:
$arraykeys = [];
foreach ($data as $item) {
foreach ($item as $key => $value) {
if (! array_key_exists($key, $arraykeys)){
$arraykeys[$key] = null;
}
}
}
aber nicht wissen, wie die Arrays abzuschließen alle Schlüssel mit. Wie kann ich dieses Problem lösen?
Hinweis: Das Objekt kann n
Positionen und mehr Schlüssel haben. Dies ist nur ein Beispiel. Idealerweise befinden sich die Schlüssel in jeder Anordnung in der gleichen Reihenfolge.
Ist "arraykeys" als vordefinierte Liste bekannt? – RomanPerekhrest
Nein, das ist nur ein Beispiel, aber es gibt mehr Schlüssel, wie E-Mail, Adresse usw. Auch könnte in Zukunft mehr sein. Deshalb muss ich alle Schlüssel bekommen ... – David
@KrBm https://eval.in/581163 Sie können Ihre Lösung verwenden, um Schlüssel-Array zu erstellen. Es funktioniert – splash58