PHP có hai cách để nối các mảng;
concat nối thêm các thành viên của mảng đã cho vào cuối mảng đầu tiên
Hướng dẫn này trình bày cách nối hai hoặc nhiều mảng trong PHP
Liên kết mảng có thể nối hai hoặc nhiều mảng, nhưng các mảng phải là mảng kết hợp. Công đoàn không thể nối các mảng đơn giản
'Jack', 2 => 'Shawn', 3 => 'Michelle'];
$ac_array2 = array[4 => 'John', 1 => 'Joey', 6 => 'Maria'];
$combined_array1 = $demo_array1 + $demo_array2;
$combined_array2 = $ac_array1 + $ac_array2;
echo "The values for simple array:
";
foreach[$combined_array1 as $value]{
echo $value."
";
}
echo "The values for associative array:
";
foreach[$combined_array2 as $value]{
echo $value."
";
}
?>
Trước tiên, đoạn mã trên cố gắng nối hai mảng đơn giản và kết hợp
Nếu khóa trong liên kết giống nhau tại bất kỳ điểm nào, phần tử đó sẽ không được thêm vào mảng mới
đầu ra
The values for simple array:
Jack
Shawn
Michelle
The values for associative array:
Jack
Shawn
Michelle
John
Maria
Như chúng ta có thể thấy, công đoàn không nối hai mảng đơn giản và, trong liên kết, đã xóa thành viên có cùng khóa
$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];3 là một hàm tích hợp trong PHP để hợp nhất nhiều mảng. Các tham số có thể là nhiều mảng như bạn muốn nối
'Jack', 2 => 'Shawn', 3 => 'Michelle'];
$ac_array2 = array[4 => 'John', 5 => 'Joey', 6 => 'Maria'];
$ac_array3 = array[7 => 'Robert', 1 => 'Jimmy', 8 => 'Mike'];
// concat arrays using array_merge
$combined_array1 = array_merge[$demo_array1 , $demo_array2, $demo_array3] ;
$combined_array2 = array_merge[$ac_array1 , $ac_array2, $ac_array3] ;
echo "The values for simple array:
";
foreach[$combined_array1 as $value]{
echo $value."
";
}
echo "The values for associative array:
";
foreach[$combined_array2 as $value]{
echo $value."
";
}
?>
Đoạn mã trên cố gắng nối một bộ ba mảng đơn giản và một bộ ba mảng kết hợp
$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];2 sẽ nối các mảng bất kể loại của chúng.
$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];2 sẽ giữ tất cả các phần tử, không giống như công đoàn
Tôi đang làm một công việc mới và điều thú vị khi làm việc với mã của người khác là bạn thường học được rất nhiều thứ mà bạn chưa biết. Một vài tuần trước, tôi đã tìm ra một cách để hợp nhất các mảng trong PHP bằng toán tử +, thay vì sử dụng các hàm mảng [e. g. array_merge] vì vậy hãy chia sẻ cái này tại đây
Thí dụ
Cách dễ nhất để minh họa điều này là với một ví dụ
Sử dụng toán tử cộng để hợp nhất một mảng thực sự hoạt động tốt nhất với một mảng kết hợp, nếu không, nó sẽ hợp nhất trên các chỉ mục được đánh số, điều này có thể dẫn đến một số kết quả không mong muốn hoặc kỳ lạ
Đây là một vài mảng, với một số phần tử giao nhau và một số phần tử khác nhau
$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
Thứ tự ưu tiên khi sử dụng toán tử + để hợp nhất các mảng này là từ trái sang phải. Vì vậy, nếu chúng ta thêm $array1 và $array2 như vậy, 'apple' sẽ được ưu tiên hơn 'banana' đối với phần tử trái cây
Array_merge[] là một hàm dựng sẵn trong PHP và được sử dụng để hợp nhất hai hoặc nhiều mảng thành một mảng duy nhất. Hàm này được sử dụng để hợp nhất các phần tử hoặc giá trị của hai hoặc nhiều mảng lại với nhau thành một mảng duy nhất. Việc hợp nhất xảy ra theo cách mà các giá trị của một mảng được thêm vào cuối mảng trước đó. Hàm lấy danh sách các mảng được phân tách bằng dấu phẩy làm tham số cần được hợp nhất và trả về một mảng mới với các giá trị đã hợp nhất của các mảng được truyền trong tham số
cú pháp
array array_merge[$array1, $array2, ......, $arrayn]
Thông số. Hàm array_merge[] lấy một danh sách các mảng được phân tách bằng dấu phẩy làm tham số cần được hợp nhất như trong cú pháp. Có n mảng [[$array1, $array2, ……, $arrayn] cách nhau bởi dấu [‘,’] trong cú pháp. Chúng ta có thể chuyển bất kỳ số lượng mảng nào trong tham số
Giá trị trả về. Nó trả về một mảng mới trong đó các phần tử của tất cả các mảng được truyền trong tham số được hợp nhất sao cho các giá trị của một mảng được thêm vào cuối mảng trước đó
Các chương trình dưới đây minh họa hoạt động của hàm array_merge[] trong PHP
- Hợp nhất hai mảng đơn giản. Khi hai mảng nữa được chuyển đến hàm array_merge[] thì các giá trị của một mảng được thêm vào cuối mảng trước đó. Nếu hai phần tử có cùng khóa chuỗi thì giá trị sau sẽ bị ghi đè. Các phím số nguyên sẽ được đánh số lại bắt đầu từ số không. Để hợp nhất hai mảng, hàm array_merge[] có thể được thực hiện theo cách sau
$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
6$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
7$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
8$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
9array array_merge[$array1, $array2, ......, $arrayn]
0array array_merge[$array1, $array2, ......, $arrayn]
1Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
0Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
1Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
2Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
3Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
4$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
9array array_merge[$array1, $array2, ......, $arrayn]
0array array_merge[$array1, $array2, ......, $arrayn]
1Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
8Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
9
20The values for simple array: Jack Shawn Michelle The values for associative array: Jack Shawn Michelle John Maria
Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
9Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
0Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
1
24The values for simple array: Jack Shawn Michelle The values for associative array: Jack Shawn Michelle John Maria
Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
9
26The values for simple array: Jack Shawn Michelle The values for associative array: Jack Shawn Michelle John Maria
27The values for simple array: Jack Shawn Michelle The values for associative array: Jack Shawn Michelle John Maria
Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
1____129
20'Jack', 2 => 'Shawn', 3 => 'Michelle']; $ac_array2 = array[4 => 'John', 5 => 'Joey', 6 => 'Maria']; $ac_array3 = array[7 => 'Robert', 1 => 'Jimmy', 8 => 'Mike']; // concat arrays using array_merge $combined_array1 = array_merge[$demo_array1 , $demo_array2, $demo_array3] ; $combined_array2 = array_merge[$ac_array1 , $ac_array2, $ac_array3] ; echo "The values for simple array:
"; foreach[$combined_array1 as $value]{ echo $value."
"; } echo "The values for associative array:
"; foreach[$combined_array2 as $value]{ echo $value."
"; } ?>
21'Jack', 2 => 'Shawn', 3 => 'Michelle']; $ac_array2 = array[4 => 'John', 5 => 'Joey', 6 => 'Maria']; $ac_array3 = array[7 => 'Robert', 1 => 'Jimmy', 8 => 'Mike']; // concat arrays using array_merge $combined_array1 = array_merge[$demo_array1 , $demo_array2, $demo_array3] ; $combined_array2 = array_merge[$ac_array1 , $ac_array2, $ac_array3] ; echo "The values for simple array:
"; foreach[$combined_array1 as $value]{ echo $value."
"; } echo "The values for associative array:
"; foreach[$combined_array2 as $value]{ echo $value."
"; } ?>$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
9
23____41____38'Jack', 2 => 'Shawn', 3 => 'Michelle']; $ac_array2 = array[4 => 'John', 5 => 'Joey', 6 => 'Maria']; $ac_array3 = array[7 => 'Robert', 1 => 'Jimmy', 8 => 'Mike']; // concat arrays using array_merge $combined_array1 = array_merge[$demo_array1 , $demo_array2, $demo_array3] ; $combined_array2 = array_merge[$ac_array1 , $ac_array2, $ac_array3] ; echo "The values for simple array:
"; foreach[$combined_array1 as $value]{ echo $value."
"; } echo "The values for associative array:
"; foreach[$combined_array2 as $value]{ echo $value."
"; } ?>Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
9Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
4
28'Jack', 2 => 'Shawn', 3 => 'Michelle']; $ac_array2 = array[4 => 'John', 5 => 'Joey', 6 => 'Maria']; $ac_array3 = array[7 => 'Robert', 1 => 'Jimmy', 8 => 'Mike']; // concat arrays using array_merge $combined_array1 = array_merge[$demo_array1 , $demo_array2, $demo_array3] ; $combined_array2 = array_merge[$ac_array1 , $ac_array2, $ac_array3] ; echo "The values for simple array:
"; foreach[$combined_array1 as $value]{ echo $value."
"; } echo "The values for associative array:
"; foreach[$combined_array2 as $value]{ echo $value."
"; } ?>$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
7$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
60
21____228'Jack', 2 => 'Shawn', 3 => 'Michelle']; $ac_array2 = array[4 => 'John', 5 => 'Joey', 6 => 'Maria']; $ac_array3 = array[7 => 'Robert', 1 => 'Jimmy', 8 => 'Mike']; // concat arrays using array_merge $combined_array1 = array_merge[$demo_array1 , $demo_array2, $demo_array3] ; $combined_array2 = array_merge[$ac_array1 , $ac_array2, $ac_array3] ; echo "The values for simple array:
"; foreach[$combined_array1 as $value]{ echo $value."
"; } echo "The values for associative array:
"; foreach[$combined_array2 as $value]{ echo $value."
"; } ?>$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
7$array1 = array[ 'fruit' => 'apple', 'vegetable' => 'carrot', 'drink' => 'water', 'snack' => 'chips' ]; $array2 = array[ 'fruit' => 'banana', 'drink' => 'juice', 'sport' => 'running' ];
64đầu ra
Array [ [size] => medium [0] => 2 [1] => 3 [2] => a [3] => b [shape] => circle [4] => 4 ]
Ghi chú. Nếu các mảng đầu vào chứa các khóa chuỗi giống nhau, thì giá trị sau của khóa đó sẽ ghi đè lên giá trị trước đó
Làm cách nào để nối một mảng trong PHP?
Hàm array_merge[] trong PHP .Hợp nhất hai mảng thành một mảng. $a1=mảng["đỏ","xanh"]; .Hợp nhất hai mảng kết hợp thành một mảng. $a1=array["a"=>"đỏ","b"=>"xanh"]; .Chỉ sử dụng một tham số mảng với các khóa số nguyên. $a=array[3=>"đỏ",4=>"xanh"];Làm cách nào để kết hợp 3 mảng thành một PHP?
Làm cách nào để kết hợp ba mảng trở lên trong php? .mảng array_merge[ mảng $array1[, mảng $. ]]- Nếu các mảng có khóa chuỗi giống nhau, giá trị cuối cùng của khóa đó sẽ ghi đè lên giá trị trước đó- Nếu mảng chứa các phím số thì giá trị sau sẽ không ghi đè lên giá trị ban đầu mà sẽ được thêm vàoVật mẫu+= có hoạt động trên các mảng trong PHP không?
Toán tử + trong PHP khi được áp dụng cho mảng sẽ thực hiện công việc của mảng UNION . mảng $arr += mảng $arr1; .Làm cách nào để sử dụng hàm Array_combine trong PHP?
Hàm array_combine[] tạo một mảng bằng cách sử dụng các phần tử từ một mảng "khóa" và một mảng "giá trị" . Ghi chú. Cả hai mảng phải có số phần tử bằng nhau.