Loại bỏ lồng nhau và xây dựng một mảng một chiều [phẳng] là một nhiệm vụ thường xuyên gặp phải trong lập trình dựa trên PHP. Bạn có thể thực hiện điều này bằng chức năng đệ quy của riêng bạn. Nhưng một phương pháp tốt hơn nhiều là để các hàm SPL của PHP đảm nhận việc này. Chương trình sau sử dụng
['a', 'b', 'c', '1', '2', '3']
0, ['a', 'b', 'c', '1', '2', '3']
1 và ['a', 'b', 'c', '1', '2', '3']
2 để chuyển đổi một mảng nhiều chiều thành một chiềuXem xét một mảng đầu vào
[ [20,21,[22,23] ], 24, 25, ['a','b']
Đây là chương trình chuyển mảng lồng nhau ở trên thành mảng một chiều
RecursiveIteratorIterator[ new RecursiveArrayIterator[$input_array]]; // Copy the iterator into an array $output_array = iterator_to_array[$output_array_obj, false]; //Print output array print_r[$output_array]; ?>
Đầu ra của chương trình này là
Array [ [0] => 20 [1] => 21 [2] => 22 [3] => 23 [4] => 24 [5] => a [6] => b ]
Không có chức năng tích hợp để lấy một mảng nhiều chiều trong PHP và làm phẳng nó thành một mảng duy nhất. Tuy nhiên, nó khá dễ dàng để thực hiện trong một lớp lót. Đây là mã
['a', 'b', 'c', '1', '2', '3']
Điều này chỉ hoạt động cho PHP ~> 7
Làm phẳng mảng nghĩa là chuyển mảng nhiều chiều thành mảng một chiều. PHP có nhiều cách khác nhau để làm phẳng một mảng và chúng ta sẽ thảo luận về chúng tại đây
Sử dụng ________ 40 và ________ 41 để vận hành Làm phẳng mảng trong PHP
Thư viện SPL có các trình vòng lặp được sử dụng để làm phẳng các mảng nhiều chiều. Chúng tôi đã sử dụng hai trình vòng lặp,
Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
2 và Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
3, để vận hành làm phẳng mảng________số 8
đầu ra
Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
Mã chứa mảng ba lớp sẽ được làm phẳng trong mảng một chiều
Sử dụng Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
4 để làm phẳng một mảng đa chiều trong PHP
Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
Hàm dựng sẵn
Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
4 có thể được sử dụng với hàm đóng để làm phẳng một mảng nhiều chiều trong PHP________số 8
đầu ra
RecursiveIteratorIterator[ new RecursiveArrayIterator[$input_array]]; // Copy the iterator into an array $output_array = iterator_to_array[$output_array_obj, false]; //Print output array print_r[$output_array]; ?>3
Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
4 với hàm đóng làm phẳng mảng đa chiều đã choSử dụng Vòng lặp Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
7 để làm phẳng một mảng đa chiều trong PHP
Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
Chúng ta có thể sử dụng vòng lặp
Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
7 để làm phẳng các mảng nhiều chiều; ________số 8
đầu ra
RecursiveIteratorIterator[ new RecursiveArrayIterator[$input_array]]; // Copy the iterator into an array $output_array = iterator_to_array[$output_array_obj, false]; //Print output array print_r[$output_array]; ?>3
Đoạn mã trên sẽ tạo ra một mảng phẳng bằng cách lặp lại mảng đã cho với sự trợ giúp của vòng lặp
Array [ [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s ]
7Sử dụng Vòng lặp
0 để làm phẳng một mảng đa chiều trong PHP
________số 8
đầu ra
RecursiveIteratorIterator[ new RecursiveArrayIterator[$input_array]]; // Copy the iterator into an array $output_array = iterator_to_array[$output_array_obj, false]; //Print output array print_r[$output_array]; ?>3
Mảng đã cho làm phẳng với sự trợ giúp của vòng lặp
0 và hàm
2, được sử dụng để loại bỏ một phần của mảng và thay thế nó bằng một thứ khácSử dụng vòng lặp
3 để làm phẳng một mảng đa chiều trong PHP
________số 8
đầu ra
RecursiveIteratorIterator[ new RecursiveArrayIterator[$input_array]]; // Copy the iterator into an array $output_array = iterator_to_array[$output_array_obj, false]; //Print output array print_r[$output_array]; ?>3
Mảng đã cho làm phẳng bằng cách sử dụng vòng lặp
3 và hàm
5, kết hợp hai mảng thành một