Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghimpunkan Tatasusunan Bersekutu mengikut Nilai Lajur Menggunakan PDO?

Bagaimana untuk Menghimpunkan Tatasusunan Bersekutu mengikut Nilai Lajur Menggunakan PDO?

Patricia Arquette
Patricia Arquetteasal
2024-10-22 07:39:02804semak imbas

How to Group Associative Arrays by Column Values Using PDO?

PDO: Mengumpulkan Tatasusunan Bersekutu mengikut Nilai Lajur

Menghimpun data mengikut nilai lajur tertentu boleh berguna untuk mengatur dan memanipulasi set data. Soalan ini meneroka cara untuk mencapai perkara ini menggunakan kaedah fetchAll PDO.

Contoh yang disediakan menunjukkan set data pekerja dengan lajur seperti nama, umur, jantina dan jawatan. Matlamatnya adalah untuk mendapatkan tatasusunan bersekutu yang dikumpulkan mengikut lajur nama, menghasilkan struktur tatasusunan seperti:

[
  'Antony' => ['age' => 34, 'sex' => 'M', 'position' => 'programmer'],
  'Sally' => ['age' => 30, 'sex' => 'F', 'position' => 'manager'],
  'Matthew' => ['age' => 28, 'sex' => 'M', 'position' => 'designer'],
]

Pendekatan awal menggunakan PDO::FETCH_GROUP|PDO::FETCH_ASSOC memperkenalkan tahap sarang yang tidak diingini. Untuk menyelesaikan masalah ini, soalan mencadangkan menggunakan fungsi panggil balik dengan PDO::FETCH_GROUP|PDO::FETCH_ASSOC|PDO::FETCH_FUNC. Walau bagaimanapun, ia menghadapi masalah dengan fungsi panggil balik yang menerima elemen individu dan bukannya tatasusunan.

Penyelesaian kepada isu ini ialah menggunakan PDO::FETCH_GROUP|PDO::FETCH_UNIQUE. Pendekatan ini menetapkan lajur pertama sebagai kunci tatasusunan dan menetapkan lajur yang selebihnya sebagai nilai, menghasilkan tatasusunan bersekutu berkumpulan yang diingini tanpa sarang atau manipulasi tatasusunan yang tidak perlu.

Atas ialah kandungan terperinci Bagaimana untuk Menghimpunkan Tatasusunan Bersekutu mengikut Nilai Lajur Menggunakan PDO?. 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