Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Menyusun Baris Tatasusunan Bersekutu Berdasarkan Nilai Lajur Tertentu?

Bagaimana Menyusun Baris Tatasusunan Bersekutu Berdasarkan Nilai Lajur Tertentu?

DDD
DDDasal
2024-10-30 11:49:03185semak imbas

How to Organize Associative Array Rows Based on a Specific Column Value?

Mengatur Baris Tatasusunan Bersekutu mengikut Nilai Lajur

Apabila bekerja dengan tatasusunan bersekutu yang terdiri daripada subarray, selalunya perlu untuk menyusun semula berdasarkan data pada nilai lajur tertentu. Ini membolehkan pengambilan dan analisis data yang lebih mudah.

Andaikan kami mempunyai tatasusunan subarray dalam format berikut:

[
    'a' => ['id' => 20, 'name' => 'chimpanzee'],
    'b' => ['id' => 40, 'name' => 'meeting'],
    'c' => ['id' => 20, 'name' => 'dynasty'],
    'd' => ['id' => 50, 'name' => 'chocolate'],
    'e' => ['id' => 10, 'name' => 'bananas'],
    'f' => ['id' => 50, 'name' => 'fantasy'],
    'g' => ['id' => 50, 'name' => 'football']
]

Matlamat kami adalah untuk mengumpulkan subarray ini ke dalam tatasusunan baharu berdasarkan Medan 'id' hadir dalam setiap subbaris.

Untuk mencapai matlamat ini, kita boleh mengikuti langkah berikut:

  1. Mulakan tatasusunan kosong:
$arr = array();
  1. Gelung melalui setiap subarray dalam tatasusunan asal. Untuk setiap subarray, ekstrak nilai 'id'nya dan gunakannya sebagai kunci dalam tatasusunan baharu:
foreach ($old_arr as $key => $item) {
   $arr[$item['id']][$key] = $item;
}
  1. Langkah ini mengisih tatasusunan baharu mengikut 'id' dalam tertib menaik:
ksort($arr, SORT_NUMERIC);
  1. Akhir sekali, tatasusunan yang terhasil disusun mengikut nilai 'id':
array
(
    10 => array
          (
            e => array ( id = 10, name = bananas )
          )
    20 => array
          (
            a => array ( id = 20, name = chimpanzee )
            c => array ( id = 20, name = dynasty )
          )
    40 => array
          (
            b => array ( id = 40, name = meeting )
          )
    50 => array
          (
            d => array ( id = 50, name = chocolate )
            f => array ( id = 50, name = fantasy )
            g => array ( id = 50, name = football )
          )
)

Atas ialah kandungan terperinci Bagaimana Menyusun Baris Tatasusunan Bersekutu Berdasarkan Nilai Lajur Tertentu?. 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