Rumah > pembangunan bahagian belakang > tutorial php > Apakah Teknik yang Boleh Saya Gunakan untuk Menggabungkan Tatasusunan Bersekutu dan Menambah Lajur Hilang dengan Nilai Lalai?

Apakah Teknik yang Boleh Saya Gunakan untuk Menggabungkan Tatasusunan Bersekutu dan Menambah Lajur Hilang dengan Nilai Lalai?

Barbara Streisand
Lepaskan: 2024-10-20 21:42:29
asal
664 orang telah melayarinya

What Techniques Can I Use to Merge Associative Arrays and Add Missing Columns with Default Values?

Menggabungkan Tatasusunan Bersekutu dan menambahkan Lajur Hilang dengan Nilai Lalai

Menggabungkan berbilang tatasusunan bersekutu sambil mengekalkan semua kunci unik dan menambah lajur yang hilang dengan nilai lalai boleh dicapai dengan menggunakan pelbagai teknik. Mari kita terokai dua kaedah untuk mencapai ini:

Kaedah 1: Menggunakan array_merge dan RecursiveIterationIterator

<code class="php">$a = array('a' => 'some value', 'b' => 'some value', 'c' => 'some value');
$b = array('a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value');
$c = array('b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value');

$d = array($a, $b, $c);
$keys = array();

foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) {
    $keys[$key] = '';
}

$data = array();
foreach ($d as $values) {
    $data[] = array_merge($keys, $values);
}

echo '<pre class="brush:php;toolbar:false">';
print_r($data);</code>
Salin selepas log masuk

Pendekatan ini mula-mula menggunakan RecursiveIteratorIterator bersama-sama dengan array_merge untuk mengenal pasti semua kunci unik dalam setiap tatasusunan bersekutu. Ia kemudiannya memulakan tatasusunan kosong ($kunci) dengan kunci yang dikenal pasti. Selepas itu, ia berulang melalui setiap tatasusunan dalam $d, menggabungkan tatasusunan $keys dengan setiap nilai tatasusunan untuk mendapatkan format yang diingini.

Kaedah 2: Menggunakan array_combine dan array_map

<code class="php">$keys = array_keys(call_user_func_array('array_merge', $d));
$key_pair = array_combine($keys, array_fill(0, count($keys), null));
$values = array_map(function ($e) use ($key_pair) {
    return array_merge($key_pair, $e);
}, $d);</code>
Salin selepas log masuk

Pendekatan ini menggunakan array_keys untuk menentukan penyatuan semua kunci unik dalam tatasusunan yang digabungkan. Ia kemudiannya menggunakan array_combine untuk mencipta pasangan nilai kunci di mana kunci adalah kunci unik, dan nilainya adalah nol. Akhir sekali, array_map digunakan untuk lelaran melalui $d, menggabungkan pasangan nilai kunci ($key_pair) dengan setiap tatasusunan bersekutu dalam $d, menghasilkan format yang diingini.

Atas ialah kandungan terperinci Apakah Teknik yang Boleh Saya Gunakan untuk Menggabungkan Tatasusunan Bersekutu dan Menambah Lajur Hilang dengan Nilai Lalai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan