Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam php

Bagaimana untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam php

PHPz
PHPzasal
2023-04-26 14:18:52788semak imbas

Semasa pembangunan, anda mungkin menghadapi keperluan untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi Artikel ini akan memperkenalkan cara melaksanakan operasi ini dalam PHP.

Tatasusunan dua dimensi dalam PHP ialah tatasusunan yang terdiri daripada tatasusunan berbilang satu dimensi, manakala tatasusunan satu dimensi ialah tatasusunan yang terdiri daripada satu nilai. Oleh itu, untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi, anda perlu mengekstrak semua nilai dalam tatasusunan satu dimensi dan kemudian meletakkannya ke dalam tatasusunan satu dimensi yang baharu.

1 Gunakan gelung untuk melintasi tatasusunan dua dimensi

Dalam PHP, anda boleh menggunakan gelung untuk melintasi tatasusunan dua dimensi dan menambah nilai ​​​​kepada yang baharu tatasusunan satu dimensi. Pelaksanaan khusus adalah seperti berikut:

$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));

$singleArr = array();
foreach ($multiArr as $arr) {
    foreach ($arr as $value) {
        $singleArr[] = $value;
    }
}

print_r($singleArr);

Dalam kod di atas, tatasusunan dua dimensi $multiArr pertama kali ditakrifkan, yang mengandungi dua tatasusunan satu dimensi. Seterusnya buat tatasusunan satu dimensi kosong $singleArr dan kemudian gunakan dua bersarang foreach untuk menggelungkan setiap tatasusunan satu dimensi dan nilai dalam $multiArr dan tambah nilai pada $singleArr. Akhir sekali, gunakan fungsi print_r() untuk mencetak $singleArr, dan hasil output ialah:

Array
(
    [0] => apple
    [1] => banana
    [2] => pear
    [3] => cat
    [4] => dog
    [5] => lion
)

2. Gunakan fungsi call_user_func_array()

Selain lintasan gelung, anda juga boleh menggunakan fungsi call_user_func_array() untuk Menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi. Kod khusus adalah seperti berikut:

$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));

$singleArr = call_user_func_array('array_merge', $multiArr);

print_r($singleArr);

Dalam kod di atas, tatasusunan dua dimensi $multiArr pertama kali ditakrifkan, yang mengandungi dua tatasusunan satu dimensi. Kemudian gunakan fungsi call_user_func_array() Parameter pertama ialah nama fungsi array_merge, yang menunjukkan bahawa operasi cantum akan dilakukan Parameter kedua ialah tatasusunan $multiArr, yang menunjukkan berbilang tatasusunan untuk digabungkan. Tatasusunan baharu gabungan ialah tatasusunan satu dimensi $singleArr. Akhir sekali, gunakan fungsi print_r() untuk mencetak $singleArr, dan hasil output ialah:

Array
(
    [0] => apple
    [1] => banana
    [2] => pear
    [3] => cat
    [4] => dog
    [5] => lion
)

3. Gunakan fungsi array_reduce()

Sebagai tambahan kepada dua di atas kaedah, anda juga boleh menggunakan array_reduce() Fungsi untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Pelaksanaan khusus adalah seperti berikut:

$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));

$singleArr = array_reduce($multiArr, 'array_merge', array());

print_r($singleArr);

Dalam kod di atas, tatasusunan dua dimensi $multiArr pertama kali ditakrifkan, yang mengandungi dua tatasusunan satu dimensi. Kemudian gunakan fungsi array_reduce() Parameter pertama ialah tatasusunan $multiArr, menunjukkan tatasusunan yang akan digabungkan Parameter kedua ialah nama fungsi array_merge, menunjukkan bahawa operasi cantuman akan dilakukan kosong. Tatasusunan, menunjukkan tatasusunan satu dimensi awal ialah tatasusunan kosong. Akhir sekali, simpan gabungan tatasusunan baharu ke dalam tatasusunan satu dimensi $singleArr, dan gunakan fungsi print_r() untuk mencetak hasil output adalah sama dengan dua kaedah pertama:

Array
(
    [0] => apple
    [1] => banana
    [2] => pear
    [3] => cat
    [4] => dog
    [5] => lion
)

4. Ringkasan

Dalam artikel ini, tiga kaedah menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi diperkenalkan Dalam pembangunan sebenar, anda boleh memilih kaedah yang sesuai mengikut keperluan anda. Untuk tatasusunan dua dimensi yang mudah, kaedah lintasan gelung yang pertama mungkin lebih mudah difahami dan dilaksanakan untuk tatasusunan berbilang dimensi yang lebih kompleks, fungsi call_user_func_array() dan fungsi array_reduce() mungkin lebih mudah.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam php. 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