いくつかのウェブサイトから異なるjsonオブジェクトを受け取っています。 このオブジェクトは通常、同じに見えません。異なるキーで配列を完成
jsonオブジェクトのすべての位置に欠けているキーを追加するにはどうすればよいですか?ここで
あなたは
$data = new stdClass();
$data->a1 = ["name"=>"John","age"=>"27","phone"=>"5566634"];
$data->a2 = ["name"=>"Mark","age"=>"38","gender"=>"Male"];
指定されたオブジェクトを表現する例があり、それは、所望の出力です:私はちょうどすべてのアレイ上に同じキーを持つようにしたい
$data->a1 = ["name"=>"John","age"=>"27","phone"=>"5566634", "gender"=>"unknown"];
$data->a2 = ["name"=>"Mark","age"=>"38","phone"=>"unknown", "gender"=>"Male"];
何私はしようとしたすべてのオブジェクトをforeachし、すべての既存のキーを$arraykeys
に保存することです。現在の キーが$arraykeys
の内部にある場合はオブジェクトチェックを再度行いますが、これは大きなjsonオブジェクトでは非常に遅いです。私はすべてのキーを取得するために、これまで試したどのような
:
$arraykeys = [];
foreach ($data as $item) {
foreach ($item as $key => $value) {
if (! array_key_exists($key, $arraykeys)){
$arraykeys[$key] = null;
}
}
}
が、すべてのキーを持つ配列を完成する方法がわかりません。どうすればこの問題を解決できますか?
注:オブジェクトには、n
個の位置以上のキーがある場合があります。これは単なる例です。理想的には、キーはすべての配列で同じ順序になります。あなたは多くの分野でこれを実行したい場合は、次の操作を行うことができます
が事前に定義されたリストとして知られる "arraykeys" となっていますか? – RomanPerekhrest
いいえ、これは単なる例ですが、電子メール、アドレスなど、より多くのキーがあります。だから私はすべてのキーを取得する必要があります... – David
@KrBm https://eval.in/581163あなたのソリューションを使用してキー配列を構築することができます。それは – splash58