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

Bagaimana untuk menukar tatasusunan dua dimensi kepada satu dimensi dalam php

PHPz
PHPzasal
2023-04-19 11:41:481014semak imbas

Apabila membangunkan atur cara PHP, kita selalunya perlu menggunakan data tatasusunan dalam kod, dan tatasusunan dua dimensi yang digunakan juga sangat biasa. Walau bagaimanapun, dalam beberapa kes, kita perlu menukar tatasusunan 2D kepada tatasusunan 1D. Ini sangat berguna semasa menulis aplikasi PHP. Di bawah ialah langkah terperinci tentang cara menukar tatasusunan 2D kepada tatasusunan 1D dalam PHP.

1. Gunakan foreach untuk merentasi tatasusunan

Untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi, anda perlu menggunakan pernyataan foreach untuk melintasi elemen dalam tatasusunan. Berikut ialah contoh kod untuk traversal:

$two_dimensional_array = array(
    array('name' => '张三', 'age' => 20),
    array('name' => '李四', 'age' => 21),
    array('name' => '王五', 'age' => 22)
);

$one_dimensional_array = array();

foreach ($two_dimensional_array as $row) {
    foreach ($row as $key => $value){
        array_push($one_dimensional_array, $value);
    }
}

Kod ini menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi $one_dimensional_array. Dalam kod di atas, kami mengulangi setiap baris dalam $two_dimensional_array dan menambah nilai setiap baris pada $one_dimensional_array array.

2. Gunakan fungsi array_walk_recursive

Dalam PHP, anda juga boleh menggunakan fungsi array_walk_recursive untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Fungsi array_walk_recursive membolehkan anda berjalan melalui semua elemen dalam tatasusunan berbilang dimensi. Berikut ialah kod sampel:

$two_dimensional_array = array(
    array('name' => '张三', 'age' => 20),
    array('name' => '李四', 'age' => 21),
    array('name' => '王五', 'age' => 22)
);

$one_dimensional_array = array();

array_walk_recursive($two_dimensional_array, function ($item, $key) use (&$one_dimensional_array) {
    array_push($one_dimensional_array, $item);
});

Dalam kod di atas, kami menggunakan fungsi array_walk_recursive untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi $one_dimensional_array. Dalam fungsi panggil balik, kami menambah setiap elemen pada tatasusunan $one_dimensional_array dan menggunakan simbol rujukan & dalam parameter fungsi panggil balik, membolehkan kami menukar kandungan tatasusunan semasa memprosesnya dalam fungsi.

3. Gunakan fungsi array_column

PHP menyediakan fungsi yang dipanggil array_column, yang membolehkan kami mengekstrak semua nilai lajur yang ditentukan dalam tatasusunan dua dimensi dan menukarnya menjadi tatasusunan satu dimensi. Berikut ialah kod sampel:

$two_dimensional_array = array(
    array('name' => '张三', 'age' => 20),
    array('name' => '李四', 'age' => 21),
    array('name' => '王五', 'age' => 22)
);

$one_dimensional_array = array_column($two_dimensional_array, 'name');

Dalam kod di atas, kami mengekstrak lajur 'nama' setiap baris menggunakan fungsi lajur_tatasusunan dan menukarnya kepada tatasusunan satu dimensi baharu. Fungsi ini sangat mudah, terutamanya apabila anda perlu mengekstrak lajur tertentu daripada tatasusunan dua dimensi yang lebih besar.

Ringkasan:

Di atas ialah tiga kaedah untuk menukar tatasusunan dua dimensi PHP kepada tatasusunan satu dimensi. Anda boleh memilih kaedah yang paling sesuai dengan anda berdasarkan keperluan anda. Jika anda perlu memproses tatasusunan yang lebih kecil, adalah lebih mudah dan pantas untuk menggunakan kaedah foreach Jika anda berurusan dengan tatasusunan yang besar, terdapat juga faedah untuk menggunakan array_walk_recursive atau array_column, yang boleh meningkatkan kecekapan pelaksanaan.

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