Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghimpunkan Tatasusunan Bersekutu mengikut Nilai Lajur Semasa Memelihara Kunci dalam PHP?

Bagaimana untuk Menghimpunkan Tatasusunan Bersekutu mengikut Nilai Lajur Semasa Memelihara Kunci dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-10-28 13:08:02350semak imbas

How to Group Associative Arrays by Column Value While Preserving Keys in PHP?

Mengumpulkan Tatasusunan Bersekutu mengikut Nilai Lajur Semasa Mengekalkan Kekunci

Pertimbangkan tatasusunan bersekutu, setiap satu mewakili entiti dengan atribut seperti 'id' dan 'nama'. Cabarannya ialah untuk mengumpulkan tatasusunan ini berdasarkan lajur tertentu, 'id', sambil mengekalkan kekunci asal.

Untuk mencapai ini, kita boleh menggunakan gelung foreach PHP untuk mengulangi tatasusunan. Untuk setiap tatasusunan dalam, kami mengekstrak nilai 'id' dan menggunakannya sebagai indeks tatasusunan bersekutu baharu. Dalam tatasusunan baharu ini, kami menetapkan kunci asal sebagai indeks dan tatasusunan dalam sebagai nilai.

<code class="php">$arr = array();

foreach ($old_arr as $key => $item) {
   $arr[$item['id']][$key] = $item;
}</code>

Akhir sekali, kami menggunakan ksort() untuk mengisih tatasusunan yang terhasil secara berangka, memastikan kumpulan itu dibentangkan dalam tertib menaik 'id'.

<code class="php">ksort($arr, SORT_NUMERIC);</code>

Output akan menjadi tatasusunan di mana setiap elemen mewakili kumpulan entiti dengan nilai 'id' yang sama, manakala kunci asal dikekalkan dalam setiap kumpulan.

Atas ialah kandungan terperinci Bagaimana untuk Menghimpunkan Tatasusunan Bersekutu mengikut Nilai Lajur Semasa Memelihara Kunci dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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