Làm phẳng mảng đa chiều PHP

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ều

Xem 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

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 đã cho

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 một mảng đa chiều trong PHP

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 ] 
7

Sử 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ác

Sử 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

Làm cách nào tôi có thể tạo một mảng nhiều chiều thành một mảng trong PHP?

Dòng đơn này sẽ làm điều đó. $array = array_column[$array, 'plan']; Đối số đầu tiên là một mảng. Đối số thứ hai là một khóa mảng.

Làm phẳng một mảng nghĩa là gì?

Làm phẳng mảng là quá trình giảm số chiều của mảng . Nói cách khác, đó là một quá trình giảm số chiều của một mảng xuống một số thấp hơn.

Chủ Đề