Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menetapkan Data Tatasusunan Bersarang Secara Dinamik Menggunakan Laluan Rentetan dalam PHP?

Bagaimana untuk Menetapkan Data Tatasusunan Bersarang Secara Dinamik Menggunakan Laluan Rentetan dalam PHP?

Patricia Arquette
Lepaskan: 2024-12-11 09:48:10
asal
426 orang telah melayarinya

How to Dynamically Set Nested Array Data Using a String Path in PHP?

Menggunakan Laluan Rentetan untuk Menetapkan Data Tatasusunan Bersarang

Soalan:
Bagaimana saya boleh menetapkan bersarang secara dinamik data tatasusunan menggunakan laluan rentetan, seperti "cars.honda.civic" ke $data'cars'['civic'] tanpa bergantung pada eval()?

Jawapan:
Pengendali rujukan (&) membenarkan tetapan dinamik ini:

$temp = &$data;
foreach ($exploded_path as $key) {
    $temp = &$temp[$key];
}
$temp = $value;
unset($temp);
Salin selepas log masuk

Dengan menggunakan pendekatan ini, anda boleh menetapkan data tatasusunan bersarang dengan cekap tanpa memerlukan eval(). Begini cara ia berfungsi:

  • $temp dimulakan sebagai rujukan kepada tatasusunan akar ($data).
  • Gelung berulang di atas laluan yang meletup, mengemas kini $temp kepada rujukan berturut-turut tatasusunan sedia ada.
  • $temp akhirnya diberikan nilai yang diingini $value.
  • unset($temp) mengosongkan rujukan, mengelakkan kesan sampingan yang tidak disengajakan.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Data Tatasusunan Bersarang Secara Dinamik Menggunakan Laluan Rentetan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan