Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menggabungkan Tatasusunan PHP dengan Kekunci Padanan dan Mencipta Sub- Tatasusunan?

Bagaimana untuk Menggabungkan Tatasusunan PHP dengan Kekunci Padanan dan Mencipta Sub- Tatasusunan?

DDD
DDDasal
2024-10-27 20:33:30967semak imbas

How to Merge PHP Arrays with Matching Keys and Create Sub-Arrays?

Gabungan Tatasusunan PHP: Menggabungkan Tatasusunan dengan Kekunci Padanan

Soalan ini meneroka cara menggabungkan dua tatasusunan PHP yang berkongsi kunci yang sama. Mari kita selami masalah dan penyelesaiannya.

Masalah:

Pertimbangkan dua tatasusunan berikut:

  • Tatasusunan Pertama: Pasangan nilai kunci dengan kunci yang mewakili nombor kamera dan nilai yang mewakili alamat IP.
  • Susun Kedua: Pasangan nilai kunci dengan nombor kamera yang sama tetapi nilai yang berbeza mewakili nama kamera.

Objektifnya adalah untuk menggabungkan tatasusunan ini dengan mengagregatkan nilai yang sepadan dengan setiap kunci yang sepadan.

Penyelesaian Menggunakan array_map:

Walaupun array_merge_recursive boleh menggabungkan tatasusunan secara rekursif, ia memerlukan tatasusunan dengan pasangan nilai kunci yang sepadan . Penyelesaian tersuai menggunakan array_map boleh mencapai hasil yang diingini:

$results = array();

array_map(function($a, $b) use (&$results) {
    $key = current(array_keys($a));
    $a[$key] = array('ip' => $a[$key]);
    $key = current(array_keys($b));
    $b[$key] = array('name' => $b[$key]);
    $results += array_merge_recursive($a, $b);
}, $array1, $array2);

Penjelasan:

  • Untuk setiap kunci dalam tatasusunan pertama, ia mencipta sub- tatasusunan dengan kunci 'ip' dan nilai ditetapkan kepada nilai asal.
  • Begitu juga, untuk setiap kunci dalam tatasusunan kedua, ia mencipta sub-tatasusunan dengan 'nama' kunci dan nilai ditetapkan kepada nilai asal .
  • Akhir sekali, ia menggunakan array_merge_recursive untuk menggabungkan sub-tatasusunan yang berkongsi nombor kamera yang sama.

Output ialah tatasusunan dengan kekunci yang mewakili nombor dan nilai kamera sebagai sub-tatasusunan yang mengandungi sifat 'ip' dan 'name'.

Dengan memanfaatkan peta_tatasusunan dan manipulasi kunci tersuai, penyelesaian ini menggabungkan tatasusunan dengan kekunci padanan dengan cekap sambil mengekalkan struktur nilai kunci.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Tatasusunan PHP dengan Kekunci Padanan dan Mencipta Sub- Tatasusunan?. 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