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 10:29:16
asal
1513 orang telah melayarinya

Apabila melakukan beberapa operasi pemprosesan tatasusunan, kadangkala anda perlu menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi Artikel ini akan memperkenalkan beberapa kaedah untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam php.

Kaedah 1: Loop traversal

Kaedah mudah ialah menggunakan foreach loop untuk melintasi tatasusunan dua dimensi dan menambah elemennya pada tatasusunan satu dimensi.

function array2To1($arr2){
    $arr1 = array();
    foreach($arr2 as $v){
        foreach($v as $v2){
            $arr1[] = $v2;
        }
    }
    return $arr1;
}
Salin selepas log masuk

Contoh penggunaan:

$arr2 = array(array(1,2),array(3,4),array(5,6));
$arr1 = array2To1($arr2);
print_r($arr1);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
Salin selepas log masuk
Salin selepas log masuk

Kaedah 2: Rekursi

Kaedah biasa lain ialah menggunakan rekursi untuk memproses tatasusunan berbilang dimensi, mengelupasnya dari lapisan dengan lapisan ke dalam tatasusunan satu dimensi.

function array2To1($arr2){
    $arr1 = array();
    foreach($arr2 as $v){
        if(is_array($v)){
            $arr1 = array_merge($arr1,array2To1($v));
        }else{
            $arr1[] = $v;
        }
    }
    return $arr1;
}
Salin selepas log masuk

Contoh penggunaan:

$arr2 = array(array(1,2),3,array(array(4,5),6),7);
$arr1 = array2To1($arr2);
print_r($arr1);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 )
Salin selepas log masuk

Kaedah 3: Gunakan fungsi terbina dalam PHP

PHP menyediakan beberapa fungsi terbina dalam untuk mengendalikan tatasusunan berbilang dimensi, termasuk array_reduce(), array_merge_recursive() dan call_user_func_array() dsb.

function array2To1($arr2){
    return call_user_func_array('array_merge_recursive', $arr2);
}
Salin selepas log masuk

Contoh penggunaan:

$arr2 = array(array(1,2),array(3,4),array(5,6));
$arr1 = array2To1($arr2);
print_r($arr1);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
Salin selepas log masuk
Salin selepas log masuk

Selepas ujian sebenar, menggunakan kaedah tiga lebih memakan masa, jadi kaedah ini tidak disyorkan apabila memproses tatasusunan besar.

Ringkasan:

Setiap kaedah mempunyai kelebihan dan kekurangannya sendiri, dan kaedah mana yang harus dipilih akhirnya bergantung pada keperluan dan senario tertentu. Saya harap artikel ini dapat membantu anda Jika anda mempunyai kaedah yang lebih baik, sila kongsikan di ruangan komen.

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