Rumah > pembangunan bahagian belakang > masalah PHP > 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
Lepaskan: 2023-04-23 09:33:11
asal
1072 orang telah melayarinya

Dalam PHP, tatasusunan dua dimensi ialah struktur data yang sangat biasa. Tetapi dalam beberapa kes, adalah perlu untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Artikel ini membincangkan beberapa cara untuk mencapai fungsi ini.

Kaedah 1: Gunakan gelung foreach

Salah satu kaedah paling asas ialah menggunakan gelung foreach untuk melintasi keseluruhan tatasusunan dua dimensi dan tambahkan setiap nilai pada tatasusunan satu dimensi. Kodnya adalah seperti berikut:

$twoDimensionalArray = array(
    array('fruit'=>'apple', 'color'=>'red'),
    array('fruit'=>'banana', 'color'=>'yellow'),
    array('fruit'=>'grape', 'color'=>'purple')
);

$oneDimensionalArray = array();

foreach($twoDimensionalArray as $key=>$value){
    foreach($value as $k=>$v){
        $oneDimensionalArray[] = $v;
    }
}

print_r($oneDimensionalArray);

//输出结果如下:
Array
(
    [0] => apple
    [1] => red
    [2] => banana
    [3] => yellow
    [4] => grape
    [5] => purple
)
Salin selepas log masuk

Kaedah 2: Gunakan fungsi array_merge

Kaedah lain ialah menggunakan fungsi array_merge, yang menggabungkan dua atau lebih tatasusunan menjadi satu tatasusunan. Menggunakan fungsi ini, anda boleh menukar setiap baris tatasusunan 2D kepada tatasusunan 1D dan menggabungkannya menjadi tatasusunan tunggal. Kodnya kelihatan seperti ini:

$twoDimensionalArray = array(
    array('fruit'=>'apple', 'color'=>'red'),
    array('fruit'=>'banana', 'color'=>'yellow'),
    array('fruit'=>'grape', 'color'=>'purple')
);

$oneDimensionalArray = array();

foreach($twoDimensionalArray as $value){
    $oneDimensionalArray = array_merge($oneDimensionalArray, array_values($value));
}

print_r($oneDimensionalArray);

//输出结果如下:
Array
(
    [0] => apple
    [1] => red
    [2] => banana
    [3] => yellow
    [4] => grape
    [5] => purple
)
Salin selepas log masuk

Kaedah Tiga: Menggunakan fungsi array_reduce

Kaedah terakhir ialah menggunakan fungsi array_reduce, yang menggunakan fungsi panggil balik untuk setiap nilai dalam tatasusunan dan mengembalikan satu nilai. Dalam contoh ini, anda boleh menggunakan fungsi array_reduce untuk menukar setiap baris tatasusunan dua dimensi kepada tatasusunan satu dimensi dan menggabungkan tatasusunan satu dimensi semua baris menjadi satu tatasusunan besar. Kodnya adalah seperti berikut:

$twoDimensionalArray = array(
    array('fruit'=>'apple', 'color'=>'red'),
    array('fruit'=>'banana', 'color'=>'yellow'),
    array('fruit'=>'grape', 'color'=>'purple')
);

$oneDimensionalArray = array_reduce($twoDimensionalArray,function($carry,$item){
    return array_merge($carry,array_values($item));
},array());

print_r($oneDimensionalArray);

//输出结果如下:
Array
(
    [0] => apple
    [1] => red
    [2] => banana
    [3] => yellow
    [4] => grape
    [5] => purple
)
Salin selepas log masuk

Ringkasan:

Tiga kaedah di atas boleh membantu kita menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Jika anda berurusan dengan sejumlah besar data, anda mungkin mahu menguji prestasi dan kecekapannya. Pilih kaedah yang paling sesuai dengan tugas kita dengan membandingkan prestasi dan kesesuaiannya.

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!

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