Bagaimana Menyusun Baris Tatasusunan Bersekutu Berdasarkan Nilai Lajur Tertentu?

DDD
Lepaskan: 2024-10-30 11:49:03
asal
185 orang telah melayarinya

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']
]
Salin selepas log masuk

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();
Salin selepas log masuk
  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;
}
Salin selepas log masuk
  1. Langkah ini mengisih tatasusunan baharu mengikut 'id' dalam tertib menaik:
ksort($arr, SORT_NUMERIC);
Salin selepas log masuk
  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 )
          )
)
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!