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
PHPzasal
2023-04-20 10:12:351604semak imbas

PHP ialah bahasa pengaturcaraan yang sangat popular yang mempunyai fungsi berkuasa untuk memproses tatasusunan. Dalam PHP, tatasusunan dua dimensi ialah jenis data yang sangat biasa, yang terdiri daripada pelbagai tatasusunan satu dimensi. Apabila kita perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi, kami perlu menggunakan beberapa fungsi dan teknik tertentu. Di bawah, kami akan memperkenalkan beberapa kaedah yang biasa digunakan.

Kaedah 1: Gunakan gelung foreach

Kaedah pertama ialah menggunakan gelung foreach untuk melintasi tatasusunan dua dimensi dan menambah setiap elemen pada tatasusunan satu dimensi baharu. Berikut ialah kod sampel:

$two_dim_array = array(
  array('apple', 'banana', 'cherry'),
  array('dog', 'cat', 'rat'),
  array('red', 'green', 'blue')
);

$one_dim_array = array();
foreach ($two_dim_array as $key => $value) {
  foreach ($value as $k => $v) {
    array_push($one_dim_array, $v);
  }
}
print_r($one_dim_array);

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
    [3] => dog
    [4] => cat
    [5] => rat
    [6] => red
    [7] => green
    [8] => blue
)

Kaedah 2: Gunakan fungsi array_merge()

Kaedah kedua ialah menggunakan array_merge() function Gabungkan berbilang tatasusunan satu dimensi ke dalam tatasusunan satu dimensi yang baharu. Kita boleh mendapatkan tatasusunan satu dimensi baharu dengan menggelung tatasusunan dua dimensi dan menggabungkan setiap tatasusunan satu dimensi menggunakan fungsi array_merge(). Berikut ialah kod sampel:

$two_dim_array = array(
  array('apple', 'banana', 'cherry'),
  array('dog', 'cat', 'rat'),
  array('red', 'green', 'blue')
);

$one_dim_array = array();
foreach ($two_dim_array as $key => $value) {
  $one_dim_array = array_merge($one_dim_array, $value);
}
print_r($one_dim_array);

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
    [3] => dog
    [4] => cat
    [5] => rat
    [6] => red
    [7] => green
    [8] => blue
)

Kaedah 3: Gunakan fungsi array_reduce()

Kaedah ketiga ialah menggunakan array_reduce() function Menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Fungsi array_reduce() menerima tatasusunan dan fungsi panggil balik sebagai parameter Fungsi panggil balik berulang dan mengira nilai dalam tatasusunan satu demi satu, dan akhirnya mengembalikan satu nilai. Kita boleh menggunakan tatasusunan kosong sebagai nilai awal dan menggabungkan setiap tatasusunan satu dimensi ke dalam tatasusunan satu dimensi baharu dalam fungsi panggil balik. Berikut ialah kod sampel:

$two_dim_array = array(
  array('apple', 'banana', 'cherry'),
  array('dog', 'cat', 'rat'),
  array('red', 'green', 'blue')
);

$one_dim_array = array_reduce($two_dim_array, function($carry, $item) {
  return array_merge($carry, $item);
}, array());
print_r($one_dim_array);

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
    [3] => dog
    [4] => cat
    [5] => rat
    [6] => red
    [7] => green
    [8] => blue
)

Ringkasan

Di atas ialah tiga cara biasa untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam kaedah PHP. Menggunakan gelung foreach dan fungsi array_merge() kedua-duanya memerlukan melintasi tatasusunan, manakala menggunakan fungsi array_reduce() boleh menjadi lebih ringkas, tetapi ia mungkin mengelirukan sesetengah pembangun. Oleh itu, dalam pembangunan sebenar, kita boleh memilih kaedah yang paling sesuai mengikut keperluan kita untuk meningkatkan kecekapan pembangunan.

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