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

Bagaimana untuk menukar tatasusunan dua dimensi PHP kepada tatasusunan satu dimensi

PHPz
PHPzasal
2023-04-19 10:07:141098semak imbas

Dalam PHP, tatasusunan dua dimensi ialah struktur data yang menyimpan data tersusun Ia boleh menyusun berbilang elemen data ke dalam tatasusunan dan mengakses setiap elemen melalui indeks. Walau bagaimanapun, dalam beberapa kes, kita perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi untuk memudahkan operasi lain. Artikel ini akan memperkenalkan secara terperinci cara menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam PHP.

1. Gunakan gelung foreach untuk melintasi

Menggunakan gelung foreach ialah kaedah yang paling biasa untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Langkah-langkah khusus adalah seperti berikut:

//定义二维数组
$students = array(
    array("name" => "张三", "age" => 18, "gender" => "男"),
    array("name" => "李四", "age" => 20, "gender" => "女"),
    array("name" => "王五", "age" => 19, "gender" => "男")
);

//定义一维数组
$studentInfo = array();

//遍历二维数组
foreach($students as $student) {
    foreach($student as $key => $value) {
        //将二维数组的元素添加到一维数组中
        $studentInfo[$key][] = $value;
    }
}

//输出一维数组
print_r($studentInfo);

Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan dua dimensi $pelajar, yang mengandungi nama, umur dan jantina tiga pelajar. Kemudian, kami mentakrifkan tatasusunan satu dimensi $studentInfo untuk menyimpan maklumat pelajar. Gunakan gelung foreach untuk lelaran melalui tatasusunan dua dimensi dan tambahkan elemen di dalam tatasusunan satu dimensi. Akhirnya, tatasusunan satu dimensi yang ditukar adalah output. Keputusan berikut akan dikeluarkan:

Array
(
    [name] => Array
        (
            [0] => 张三
            [1] => 李四
            [2] => 王五
        )

    [age] => Array
        (
            [0] => 18
            [1] => 20
            [2] => 19
        )

    [gender] => Array
        (
            [0] => 男
            [1] => 女
            [2] => 男
        )

)

Dapat dilihat bahawa tatasusunan dua dimensi $pelajar berjaya ditukar menjadi tatasusunan satu dimensi $studentInfo.

2. Gunakan fungsi array_map

Selain menggunakan gelung foreach, kita juga boleh menggunakan array_map fungsi terbina dalam PHP untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi . Langkah-langkah khusus adalah seperti berikut:

//定义二维数组
$students = array(
    array("name" => "张三", "age" => 18, "gender" => "男"),
    array("name" => "李四", "age" => 20, "gender" => "女"),
    array("name" => "王五", "age" => 19, "gender" => "男")
);

//定义一个函数,用于将二维数组元素转换为一维数组
function flatten($item) {
    return $item;
}

//调用array_map函数,将二维数组转换为一维数组
$studentInfo = array_map("flatten", $students);

//输出一维数组
print_r($studentInfo);

Dalam kod di atas, kami menggunakan tatasusunan dua dimensi $pelajar yang ditentukan. Di samping itu, kami mentakrifkan fungsi yang dipanggil flatten() untuk menukar setiap elemen tatasusunan dua dimensi kepada tatasusunan satu dimensi. Gunakan fungsi array_map untuk memanggil fungsi flatten() untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi $studentInfo. Keputusan berikut akan dikeluarkan:

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
            [gender] => 男
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 20
            [gender] => 女
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 19
            [gender] => 男
        )

)

Dapat dilihat bahawa struktur penggunaan fungsi array_map adalah lebih ringkas daripada menggunakan gelung foreach.

3. Gunakan fungsi implode

Akhir sekali, kita juga boleh menggunakan fungsi implode untuk menukar tatasusunan dua dimensi kepada rentetan yang dipisahkan koma, dan kemudian gunakan fungsi letupan untuk menukarkan rentetan ke dalam tatasusunan dimensi. Langkah-langkah khusus adalah seperti berikut:

//定义二维数组
$students = array(
    array("name" => "张三", "age" => 18, "gender" => "男"),
    array("name" => "李四", "age" => 20, "gender" => "女"),
    array("name" => "王五", "age" => 19, "gender" => "男")
);

//首先将二维数组转换成字符串
$str = implode(",", $students);

//然后使用explode函数将字符串转换成一维数组
$studentInfo = explode(",", $str);

//输出一维数组
print_r($studentInfo);

Dalam kod di atas, kita mula-mula menggunakan fungsi implode untuk menukar tatasusunan dua dimensi kepada rentetan yang dipisahkan koma, dan kemudian menggunakan fungsi letupan untuk menukar rentetan ke dalam tatasusunan satu dimensi $ studentInfo. Keputusan berikut akan dikeluarkan:

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
            [gender] => 男
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 20
            [gender] => 女
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 19
            [gender] => 男
        )

)

Dapat dilihat bahawa kaedah ini adalah sama seperti menggunakan fungsi array_map.

Ringkasnya, walaupun bukan perkara biasa untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi, kita boleh menggunakan gelung foreach, fungsi peta tatasusunan atau kaedah fungsi meletup untuk mencapai fungsi ini. Apabila memilih, pembangun harus memilih kaedah yang paling sesuai dengan mereka berdasarkan situasi sebenar.

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