<?php
print_r($response->response->docs);
?>
Output sebagai berikut:
Array
(
[0] => Object
(
[_fields:private] => Array
(
[id]=>9093
[name]=>zahir
)
Object
(
[_fields:private] => Array
(
[id]=>9094
[name]=>hussain
)..
)
)
Bagaimana saya bisa mengonversi objek ini ke array? Saya ingin menampilkan yang berikut:
Array
(
[0]=>
(
[id]=>9093
[name]=>zahir
)
[1]=>
(
[id]=>9094
[name]=>hussain
)...
)
Apakah ini mungkin?
Anda dapat dengan cepat mengonversi objek yang sangat bersarang ke array asosiatif dengan mengandalkan perilaku fungsi penyandian / dekode JSON:
sumber
Cermat:
apakah konversi dangkal ($ object-> innerObject = new stdClass () tetap menjadi objek) dan mengkonversi bolak-balik menggunakan json works tetapi itu bukan ide yang baik jika kinerja merupakan masalah.
Jika Anda membutuhkan semua objek untuk dikonversi ke array asosiatif di sini adalah cara yang lebih baik untuk melakukan itu (kode robek dari saya tidak ingat di mana):
sumber
Saya mencoba beberapa cara untuk melakukan
foreach
dengan objek dan ini benar-benar solusi yang paling mudah dan keren yang pernah saya lihat. Hanya satu baris :)sumber
Versi sederhana:
Versi rekursif yang diperbarui:
sumber
Coba ini:-
sumber
Saya memiliki masalah yang sama dan saya menyelesaikannya dengan get_object_vars yang disebutkan di atas.
Selain itu, saya harus mengkonversi objek saya dengan json_decode dan saya harus mengulangi array dengan loop oldschool "for" (daripada masing-masing).
sumber
Anda juga dapat menggunakan metode array_values () dari php
sumber
Saya mengalami masalah dengan jawaban Andy Earnshaw karena saya telah memfaktorkan fungsi ini ke kelas terpisah dalam aplikasi saya, "HelperFunctions", yang berarti panggilan rekursif ke objectToArray () gagal.
Saya mengatasinya dengan menentukan nama kelas dalam panggilan array_map seperti:
Saya akan menulis ini di komentar tetapi saya belum memiliki reputasi yang cukup.
sumber
sumber