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-23 09:10:491034semak imbas

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
)

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
)

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
)

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!

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