Mảng PHP
Mảng PHP là một bản đồ được đặt hàng [chứa giá trị trên cơ sở khóa]. Nó được sử dụng để giữ nhiều giá trị thuộc loại tương tự trong một biến duy nhất.
Lợi thế của mảng PHP
Ít mã hơn: Chúng tôi không cần xác định nhiều biến.: We don't need to define multiple variables.
Dễ dàng đi qua: Bằng sự trợ giúp của một vòng đơn, chúng ta có thể đi qua tất cả các yếu tố của một mảng.: By the help of single loop, we can traverse all the elements of an array.
Sắp xếp: Chúng ta có thể sắp xếp các yếu tố của mảng.: We can sort the elements of array.
Các loại mảng PHP
Có 3 loại mảng trong PHP.
- Mảng được lập chỉ mục
- Mảng liên kết
- Mảng đa chiều
Mảng được lập chỉ mục PHP
Chỉ mục PHP được biểu thị bằng số bắt đầu từ 0. Chúng ta có thể lưu trữ số, chuỗi và đối tượng trong mảng PHP. Tất cả các thành phần mảng PHP được gán cho một số chỉ mục theo mặc định.
Có hai cách để xác định mảng được lập chỉ mục:
Cách đầu tiên:
Cách thứ 2:
Thí dụ
Tệp: Array1.phpOutput:
Mùa là: Mùa hè, mùa đông, mùa xuân và mùa thu
Tệp: Array2.phpOutput:
Mùa là: Mùa hè, mùa đông, mùa xuân và mùa thu
Tệp: Array2.phpNhấp vào tôi để biết thêm chi tiết ...
Mảng liên kết PHP
Chúng ta có thể liên kết tên với từng phần tử mảng trong PHP bằng ký hiệu =>.
Cách đầu tiên:
Cách thứ 2:
Thí dụ
Tệp: Array1.phpOutput:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 200000Mùa là: Mùa hè, mùa đông, mùa xuân và mùa thu
Output:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 200000Tệp: Array2.php
Nhấp vào tôi để biết thêm chi tiết ...
Tệp: Array2.php2 năm trướcarray in PHP is actually an ordered map. A map is a type that associates values to keys. This type is optimized for several different uses; it can be treated as an array, list [vector], hash table [an implementation of a map], dictionary, collection, stack, queue, and probably more. As array values can be other arrays, trees and multidimensional arrays are also possible.
Denise Ignatova ¶
Tissus ¶
Lưu ý chấm php dot lorriman tại spamgourmet dot org ¶array[]
8 năm trướcarray can be created using the array[] language construct. It takes any number of comma-separated
Sonoo salary: 350000 John salary: 450000 Kartik salary: 2000007 pairs as arguments.
array[ key => value, key2 => value2, key3 => value3, ... ]
ivail89 tại mail dot ru ¶
Ẩn danh ¶:
Walter Tross ¶
12 năm trước
array[ key => value, key2 => value2, key3 => value3, ... ]2
Ivegner tại yandex dot ru ¶key can either be an int or a string. The value can be of any type.
Các loại mảng khác nhau là gì?key casts will occur:
- Có hai loại mảng: mảng hai chiều. Mảng chiều.s containing valid decimal ints, unless the number is preceded by a
array[ key => value, key2 => value2, key3 => value3, ... ]
3 sign, will be cast to the int type. E.g. the keyarray[ key => value, key2 => value2, key3 => value3, ... ]
4 will actually be stored underarray[ key => value, key2 => value2, key3 => value3, ... ]
5. On the other handarray[ key => value, key2 => value2, key3 => value3, ... ]
6 will not be cast, as it isn't a valid decimal integer. - Phao cũng được đúc theo INT, điều đó có nghĩa là phần phân số sẽ bị cắt ngắn. Ví dụ. Khóa
array[ key => value, key2 => value2, key3 => value3, ... ]
7 thực sự sẽ được lưu trữ theoarray[ key => value, key2 => value2, key3 => value3, ... ]
5.s are also cast to ints, which means that the fractional part will be truncated. E.g. the keyarray[ key => value, key2 => value2, key3 => value3, ... ]
7 will actually be stored underarray[ key => value, key2 => value2, key3 => value3, ... ]
5. - Bools cũng được đúc theo INT, tức là khóa
array[ key => value, key2 => value2, key3 => value3, ... ]
9 sẽ thực sự được lưu trữ theoarray[1] { [1]=> string[1] "d" }
0 và khóaarray[1] { [1]=> string[1] "d" }
1 theoarray[1] { [1]=> string[1] "d" }
2.s are cast to ints, too, i.e. the keyarray[ key => value, key2 => value2, key3 => value3, ... ]
9 will actually be stored underarray[1] { [1]=> string[1] "d" }
0 and the keyarray[1] { [1]=> string[1] "d" }
1 underarray[1] { [1]=> string[1] "d" }
2. - NULL sẽ được đúc vào chuỗi trống, tức là khóa
array[1] { [1]=> string[1] "d" }
3 sẽ thực sự được lưu trữ theoarray[1] { [1]=> string[1] "d" }
4. will be cast to the empty string, i.e. the keyarray[1] { [1]=> string[1] "d" }
3 will actually be stored underarray[1] { [1]=> string[1] "d" }
4. - Mảng và đối tượng không thể được sử dụng làm khóa. Làm như vậy sẽ dẫn đến một cảnh báo:
array[1] { [1]=> string[1] "d" }
5.s and objects can not be used as keys. Doing so will result in a warning:array[1] { [1]=> string[1] "d" }
5.
Nếu nhiều phần tử trong khai báo mảng sử dụng cùng một khóa, chỉ có phần cuối cùng sẽ được sử dụng vì tất cả các phần tử khác đều bị ghi đè.
Ví dụ Ví dụ #2 mẫu đúc và ghi đè
array[1] { [1]=> string[1] "d" }6
Ví dụ trên sẽ xuất ra:
array[1] { [1]=> string[1] "d" }
Vì tất cả các khóa trong ví dụ trên được chuyển đến
array[1] { [1]=> string[1] "d" }0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùng
array[1] { [1]=> string[1] "d" }8 là giá trị duy nhất còn lại.
Các mảng PHP có thể chứa các khóa Int và chuỗi cùng lúc với PHP không phân biệt giữa các mảng được lập chỉ mục và kết hợp.int and string keys at the same time as PHP does not distinguish between indexed and associative arrays.
Ví dụ #3 Phím Int và Chuỗi hỗn hợpint and string keys
array[1] { [1]=> string[1] "d" }9
Ví dụ trên sẽ xuất ra:
array[4] { ["foo"]=> string[3] "bar" ["bar"]=> string[3] "foo" [100]=> int[-100] [-100]=> int[100] }
Vì tất cả các khóa trong ví dụ trên được chuyển đến
array[1] { [1]=> string[1] "d" }0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùng
array[1] { [1]=> string[1] "d" }8 là giá trị duy nhất còn lại.key is optional. If it is not specified, PHP will use the increment of the largest previously used int key.
Các mảng PHP có thể chứa các khóa Int và chuỗi cùng lúc với PHP không phân biệt giữa các mảng được lập chỉ mục và kết hợp.
array[4] { ["foo"]=> string[3] "bar" ["bar"]=> string[3] "foo" [100]=> int[-100] [-100]=> int[100] }0
Ví dụ trên sẽ xuất ra:
array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }
Vì tất cả các khóa trong ví dụ trên được chuyển đến
array[1] { [1]=> string[1] "d" }0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùng
array[1] { [1]=> string[1] "d" }8 là giá trị duy nhất còn lại.
Các mảng PHP có thể chứa các khóa Int và chuỗi cùng lúc với PHP không phân biệt giữa các mảng được lập chỉ mục và kết hợp.
array[4] { ["foo"]=> string[3] "bar" ["bar"]=> string[3] "foo" [100]=> int[-100] [-100]=> int[100] }1
Ví dụ trên sẽ xuất ra:
array[4] { [0]=> string[1] "a" [1]=> string[1] "b" [6]=> string[1] "c" [7]=> string[1] "d" }
Vì tất cả các khóa trong ví dụ trên được chuyển đến
array[1] { [1]=> string[1] "d" }0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùng
array[1] { [1]=> string[1] "d" }8 là giá trị duy nhất còn lại.
Các mảng PHP có thể chứa các khóa Int và chuỗi cùng lúc với PHP không phân biệt giữa các mảng được lập chỉ mục và kết hợp.
Ví dụ #3 Phím Int và Chuỗi hỗn hợp
array[4] { ["foo"]=> string[3] "bar" ["bar"]=> string[3] "foo" [100]=> int[-100] [-100]=> int[100] }5
Ví dụ trên sẽ xuất ra:
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }
Vì tất cả các khóa trong ví dụ trên được chuyển đến array[1] {
[1]=>
string[1] "d"
}
0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùng array[1] {
[1]=>
string[1] "d"
}
8 là giá trị duy nhất còn lại.
Các mảng PHP có thể chứa các khóa Int và chuỗi cùng lúc với PHP không phân biệt giữa các mảng được lập chỉ mục và kết hợp.
Ví dụ #3 Phím Int và Chuỗi hỗn hợp
array[4] { ["foo"]=> string[3] "bar" ["bar"]=> string[3] "foo" [100]=> int[-100] [-100]=> int[100] }7
Ví dụ trên sẽ xuất ra:
string[3] "bar" int[24] string[3] "foo"
Vì tất cả các khóa trong ví dụ trên được chuyển đến
array[1] { [1]=> string[1] "d" }0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùngarray[1] { [1]=> string[1] "d" }8 là giá trị duy nhất còn lại.:Các mảng PHP có thể chứa các khóa Int và chuỗi cùng lúc với PHP không phân biệt giữa các mảng được lập chỉ mục và kết hợp.
Ví dụ #3 Phím Int và Chuỗi hỗn hợp
array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }0
Vì tất cả các khóa trong ví dụ trên được chuyển đến
array[1] { [1]=> string[1] "d" }0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùngarray[1] { [1]=> string[1] "d" }8 là giá trị duy nhất còn lại.:Các mảng PHP có thể chứa các khóa Int và chuỗi cùng lúc với PHP không phân biệt giữa các mảng được lập chỉ mục và kết hợp.
array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }1-level error message [array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }2-level prior to PHP 8.0.0] will be issued, and the result will bearray[1] { [1]=> string[1] "d" }3.
Vì tất cả các khóa trong ví dụ trên được chuyển đến
array[1] { [1]=> string[1] "d" }0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùngarray[1] { [1]=> string[1] "d" }8 là giá trị duy nhất còn lại.:Các mảng PHP có thể chứa các khóa Int và chuỗi cùng lúc với PHP không phân biệt giữa các mảng được lập chỉ mục và kết hợp.string yields
array[1] { [1]=> string[1] "d" }3. Prior to PHP 7.4.0, that did not issue an error message. As of PHP 7.4.0, this issuesarray[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }2; as of PHP 8.0.0, this issuesarray[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }1.
Ví dụ #3 Phím Int và Chuỗi hỗn hợp
Chìa khóa là tùy chọn. Nếu nó không được chỉ định, PHP sẽ sử dụng mức tăng của khóa INT được sử dụng trước đó lớn nhất trước đây.array can be modified by explicitly setting values in it.
Ví dụ #4 mảng được lập chỉ mục không có khóaarray, specifying the key in brackets. The key can also be omitted, resulting in an empty pair of brackets [
array[ key => value, key2 => value2, key3 => value3, ... ]1].
$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type
Có thể chỉ định khóa chỉ cho một số yếu tố và để nó ra cho những người khác:array[1] {
[1]=>
string[1] "d"
}
3 or array[1] {
[1]=>
string[1] "d"
}
1, it will be created, so this is also an alternative way to create an array. This practice is however discouraged because if $arr
already contains some value [e.g. string from request variable] then this value will stay in the place and
array[ key => value, key2 => value2, key3 => value3, ... ]1 may actually stand for string access operator. It is always better to initialize a variable by a direct assignment.
Ví dụ #5 phím không trên tất cả các yếu tố: As of PHP 7.1.0, applying the empty index operator on a string throws a fatal error. Formerly, the string was silently converted to an array.
Như bạn có thể thấy giá trị cuối cùng
array[1] { [1]=> string[1] "d" }8 được gán khóaarray[4] { ["foo"]=> string[3] "bar" ["bar"]=> string[3] "foo" [100]=> int[-100] [-100]=> int[100] }3. Điều này là do khóa số nguyên lớn nhất trước đó làarray[4] { ["foo"]=> string[3] "bar" ["bar"]=> string[3] "foo" [100]=> int[-100] [-100]=> int[100] }4.: As of PHP 8.1.0, creating a new array fromarray[1] { [1]=> string[1] "d" }1 value is deprecated. Creating a new array fromarray[1] { [1]=> string[1] "d" }3 and undefined values is still allowed.
Ví dụ #6 ví dụ về loại đúc và ghi đè loại phức tạpunset[] function on it.
array[4] { [0]=> string[1] "a" [1]=> string[1] "b" [6]=> string[1] "c" [7]=> string[1] "d" }3
Vì tất cả các khóa trong ví dụ trên được chuyển đến
array[1] { [1]=> string[1] "d" }0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùngarray[1] { [1]=> string[1] "d" }8 là giá trị duy nhất còn lại.:Các mảng PHP có thể chứa các khóa Int và chuỗi cùng lúc với PHP không phân biệt giữa các mảng được lập chỉ mục và kết hợp.int indices is taken, and the new key will be that maximum value plus 1 [but at least 0]. If no int indices exist yet, the key will be
array[1] { [1]=> string[1] "d" }2 [zero].Ví dụ #3 Phím Int và Chuỗi hỗn hợparray. It need only have existed in the array at some time since the last time the array was re-indexed. The following example illustrates:
array[4] { [0]=> string[1] "a" [1]=> string[1] "b" [6]=> string[1] "c" [7]=> string[1] "d" }5Ví dụ trên sẽ xuất ra:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 2000000
Vì tất cả các khóa trong ví dụ trên được chuyển đến array[1] {
[1]=>
string[1] "d"
}
0, giá trị sẽ được ghi đè lên mọi yếu tố mới và giá trị được gán cuối cùng array[1] {
[1]=>
string[1] "d"
}
8 là giá trị duy nhất còn lại.
Các mảng có thể được phá hủy bằng cách sử dụng các cấu trúc ngôn ngữ
array[ key => value, key2 => value2, key3 => value3, ... ]1 [kể từ Php 7.1.0] hoặc danh sách []. Các cấu trúc này có thể được sử dụng để phá hủy một mảng thành các biến riêng biệt.list[] language constructs. These constructs can be used to destructure an array into distinct variables.
array[4] { [0]=> string[1] "a" [1]=> string[1] "b" [6]=> string[1] "c" [7]=> string[1] "d" }7
array[4] { [0]=> string[1] "a" [1]=> string[1] "b" [6]=> string[1] "c" [7]=> string[1] "d" }8
array[4] { [0]=> string[1] "a" [1]=> string[1] "b" [6]=> string[1] "c" [7]=> string[1] "d" }9
Phá hủy mảng có thể được sử dụng trong foreach để phá hủy một mảng đa chiều trong khi lặp lại nó.
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }0
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }1
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }2
Các phần tử mảng sẽ bị bỏ qua nếu biến không được cung cấp. Phá hủy mảng luôn bắt đầu tại INDEX
array[1] { [1]=> string[1] "d" }2.
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }4
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }5
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }6
Kể từ Php 7.1.0, các mảng kết hợp cũng có thể bị phá hủy. Điều này cũng cho phép dễ dàng lựa chọn phần tử phù hợp trong các mảng được lập chỉ mục bằng số vì chỉ mục có thể được chỉ định rõ ràng.
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }7
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }5
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }9
Phá hủy mảng có thể được sử dụng để dễ dàng hoán đổi hai biến.
string[3] "bar" int[24] string[3] "foo"0
array[4] { [0]=> string[1] "a" [1]=> string[1] "b" [6]=> string[1] "c" [7]=> string[1] "d" }8
string[3] "bar" int[24] string[3] "foo"2
Ghi chú::
Toán tử lây lan [
string[3] "bar" int[24] string[3] "foo"3] không được hỗ trợ trong các bài tập.
Ghi chú::
Toán tử lây lan [
string[3] "bar" int[24] string[3] "foo"3] không được hỗ trợ trong các bài tập.array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }1-level error message [array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }2-level prior to PHP 8.0.0] will be issued, and the result will bearray[1] { [1]=> string[1] "d" }3.
Cố gắng truy cập vào một khóa mảng chưa được xác định giống như truy cập bất kỳ biến không xác định nào khác: Thông báo lỗi cấp độ ____ 51 [________ 52 cấp trước Php 8.0.0] sẽ được phát hành và kết quả sẽ là array[1] {
[1]=>
string[1] "d"
}
3.
Các chức năng hữu ích
Ghi chú::
Toán tử lây lan [
string[3] "bar" int[24] string[3] "foo"3] không được hỗ trợ trong các bài tập.unset[] function allows removing keys from an array. Be aware that the array will not be reindexed. If a true "remove and shift" behavior is desired, the array can be reindexed using the array_values[] function.string[3] "bar" int[24] string[3] "foo"7
Cố gắng truy cập vào một khóa mảng chưa được xác định giống như truy cập bất kỳ biến không xác định nào khác: Thông báo lỗi cấp độ ____ 51 [________ 52 cấp trước Php 8.0.0] sẽ được phát hành và kết quả sẽ là
array[1] { [1]=> string[1] "d" }3.arrays. It provides an easy way to traverse an array.
Các chức năng hữu ích
Có khá nhiều chức năng hữu ích để làm việc với các mảng. Xem phần Hàm mảng.
Hàm unset [] cho phép loại bỏ các khóa khỏi một mảng. Xin lưu ý rằng mảng sẽ không được tái hiện. Nếu hành vi "loại bỏ và thay đổi" đúng là mong muốn, mảng có thể được tái phát bằng hàm mảng_Values [].
$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type1
Cấu trúc kiểm soát foreach tồn tại cụ thể cho các mảng. Nó cung cấp một cách dễ dàng để đi qua một mảng.string [
$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type3 - notice the quotes]. It works because PHP automatically converts a bare string [an unquoted string which does not correspond to any known symbol] into a string which contains the bare string. For instance, if there is no defined constant named
$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type2, then PHP will substitute in the string
$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type3 and use that.
Mảng do và không
Tại sao
string[3] "bar" int[24] string[3] "foo"8 lại sai?
array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }2. This has been deprecated as of PHP 7.2.0, and issues an error of level
array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }1. As of PHP 8.0.0, it has been removed and throws an Error exception.
Luôn luôn sử dụng báo giá xung quanh một chỉ mục mảng theo nghĩa đen. Ví dụ,
string[3] "bar" int[24] string[3] "foo"9 là chính xác, trong khistring[3] "bar" int[24] string[3] "foo"8 thì không. Nhưng tại sao? Người ta thường gặp loại cú pháp này trong các tập lệnh cũ:: This does not mean to always quote the key. Do not quote keys which are constants or variables, as this will prevent PHP from interpreting them.$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type8Điều này là sai, nhưng nó hoạt động. Lý do là mã này có hằng số không xác định [
$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type2] chứ không phải là một chuỗi [$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type3 - Lưu ý các trích dẫn]. Nó hoạt động vì PHP tự động chuyển đổi một chuỗi trần [một chuỗi chưa được trích xuất không tương ứng với bất kỳ biểu tượng nào đã biết] thành một chuỗi chứa chuỗi trần. Chẳng hạn, nếu không có hằng số được xác định có tên$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type2, thì PHP sẽ thay thế trong chuỗi$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type3 và sử dụng nó.Sonoo salary: 350000 John salary: 450000 Kartik salary: 2000001
Cảnh báo
$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type9
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000000
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000001
Việc dự phòng để xử lý một hằng số không xác định vì chuỗi trần có lỗi về mức độ
array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }2. Điều này đã được phản đối kể từ Php 7.2.0 và đưa ra lỗi của cấp
array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }1. Kể từ Php 8.0.0, nó đã bị xóa và ném một ngoại lệ lỗi.
array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }2 level errors [by setting it to
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000003, for example], such uses will become immediately visible. By default, error_reporting is set not to show notices.
LƯU Ý: Điều này không có nghĩa là luôn luôn trích dẫn khóa. Không trích dẫn các khóa là hằng số hoặc biến, vì điều này sẽ ngăn PHP diễn giải chúng.
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000006
Ví dụ trên sẽ xuất ra:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000007
Nhiều ví dụ hơn để chứng minh hành vi này:Sonoo salary: 350000
John salary: 450000
Kartik salary: 200000
08 is also a valid identifier, just like
$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type2 in the first example. But the last example is in fact the same as writing:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000010
Khi error_Reporting được đặt để hiển thị các lỗi cấp
array[4] { [0]=> string[3] "foo" [1]=> string[3] "bar" [2]=> string[5] "hello" [3]=> string[5] "world" }2 [ví dụ bằng cách đặt nó thành
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000003, ví dụ], việc sử dụng đó sẽ được hiển thị ngay lập tức. Theo mặc định, Error_Reporting được đặt không hiển thị thông báo.
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000008 equals
array[1] { [1]=> string[1] "d" }0, etc.
Như đã nêu trong phần Cú pháp, những gì bên trong dấu ngoặc vuông ['
array[4] { [0]=> string[1] "a" [1]=> string[1] "b" [6]=> string[1] "c" [7]=> string[1] "d" }8' và '
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000005'] phải là một biểu thức. Điều này có nghĩa là mã như thế này hoạt động:
Đây là một ví dụ về việc sử dụng giá trị trả về hàm làm chỉ mục mảng. PHP cũng biết về các hằng số:
Lưu ý rằng
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000008 cũng là một định danh hợp lệ, giống như$arr[key] = value; $arr[] = value; // key may be an int or string // value may be any value of any type2 trong ví dụ đầu tiên. Nhưng ví dụ cuối cùng trên thực tế giống như viết:: To reiterate, inside a double-quoted string, it's valid to not surround array indexes with quotes soSonoo salary: 350000 John salary: 450000 Kartik salary: 20000015 is valid. See the above examples for details on why as well as the section on variable parsing in strings.
bởi vì Sonoo salary: 350000
John salary: 450000
Kartik salary: 200000
08 bằng array[1] {
[1]=>
string[1] "d"
}
0, v.v.
Vậy tại sao nó xấu sau đó?int, float, string, bool and resource, converting a value to an array results in an array with a single element with index zero and the value of the scalar which was converted. In other words,
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000016 is exactly the same as
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000017.
Tại một số điểm trong tương lai, nhóm PHP có thể muốn thêm một từ khóa hoặc từ khóa khác hoặc một hằng số trong mã khác có thể can thiệp. Ví dụ, đã sai khi sử dụng các từ
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000013 và
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000014 theo cách này, vì chúng được bảo lưu từ khóa.object is converted to an array, the result is an array whose elements are the object's properties. The keys are the member variable names, with a few notable exceptions: integer properties are unaccessible; private variables have the class name prepended to the variable name; protected variables have a '*' prepended to the variable name. These prepended values have
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000018 bytes on either side. Uninitialized typed properties are silently discarded.
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000019
Ví dụ trên sẽ xuất ra:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 2000002
Những
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000018 này có thể dẫn đến một số hành vi bất ngờ:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000021
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000022
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000023
Ví dụ trên sẽ xuất ra:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 2000003
Các phần trên sẽ có hai khóa có tên là 'AA', mặc dù một trong số chúng thực sự được đặt tên là '\ 0a \ 0a'.
Chuyển đổi
array[1] { [1]=> string[1] "d" }3 thành một mảng dẫn đến một mảng trống.
array[1] { [1]=> string[1] "d" }3 to an array results in an empty array.
Mảng Giải nén
Một mảng được tiền tố bởi
string[3] "bar" int[24] string[3] "foo"3 sẽ được mở rộng tại chỗ trong định nghĩa của mảng. Chỉ các mảng và các đối tượng thực hiện có thể mở rộng có thể mở rộng. Mảng Giải nén với
string[3] "bar" int[24] string[3] "foo"3 có sẵn kể từ Php 7.4.0.Traversable can be expanded. Array unpacking with
string[3] "bar" int[24] string[3] "foo"3 is available as of PHP 7.4.0.
Có thể mở rộng nhiều lần và thêm các phần tử bình thường trước hoặc sau toán tử
string[3] "bar" int[24] string[3] "foo"3:
Ví dụ #9 Mảng đơn giản Giải nén
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000028
Giải nén một mảng với toán tử
string[3] "bar" int[24] string[3] "foo"3 theo ngữ nghĩa của hàm mảng_merge []. Đó là, các phím chuỗi sau này ghi đè lên các khóa trước và các khóa số nguyên được đánh số lại:array_merge[] function. That is, later string keys overwrite earlier ones and integer keys are renumbered:
Ví dụ #10 Mảng Giải nén với khóa trùng lặp
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000030
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000031
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000032
Ghi chú::
Các phím không phải là số nguyên cũng không phải chuỗi ném một kiểu. Các phím như vậy chỉ có thể được tạo ra bởi một đối tượng có thể đi được.TypeError. Such keys can only be generated by a Traversable object.
Ghi chú::
Các phím không phải là số nguyên cũng không phải chuỗi ném một kiểu. Các phím như vậy chỉ có thể được tạo ra bởi một đối tượng có thể đi được.
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000033Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000034Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000035
Trước PHP 8.1, việc giải nén một mảng có khóa chuỗi không được hỗ trợ:
Ví dụ
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000036
Loại mảng trong PHP rất linh hoạt. Dưới đây là một số ví dụ:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000037
Ví dụ #11 sử dụng Array []
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000038
array[7] { [1]=> string[1] "g" [-1]=> string[1] "d" ["01"]=> string[1] "e" ["1.5"]=> string[1] "f" [0]=> string[1] "h" [""]=> string[1] "j" [2]=> string[1] "l" }1
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000040
Ví dụ trên sẽ xuất ra:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 2000004
Ví dụ #12 Bộ sưu tậparray directly is possible by passing them by reference.
Thay đổi các giá trị của mảng trực tiếp là có thể bằng cách truyền chúng bằng cách tham chiếu.
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000041
Ví dụ trên sẽ xuất ra:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 2000005
Ví dụ #13 Thay đổi phần tử trong vòng lặp
Ví dụ này tạo ra một mảng một dựa trên.
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000042
Ví dụ trên sẽ xuất ra:
Sonoo salary: 350000 John salary: 450000 Kartik salary: 2000006
Ví dụ #14 chỉ mục một dựa trên
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000043
Ví dụ #15 điền một mảngs are ordered. The order can be changed using various sorting functions. See the array functions section for more information. The count[] function can be used to count the number of items in an array.
Mảng được đặt hàng. Thứ tự có thể được thay đổi bằng cách sử dụng các chức năng sắp xếp khác nhau. Xem phần Hàm mảng để biết thêm thông tin. Hàm số [] có thể được sử dụng để đếm số lượng mục trong một mảng.
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000044
Ví dụ #16 Sắp xếp một mảngarray can be anything, it can also be another array. This enables the creation of recursive and multi-dimensional arrays.
Bởi vì giá trị của một mảng có thể là bất cứ điều gì, nó cũng có thể là một mảng khác. Điều này cho phép tạo ra các mảng đệ quy và đa chiều.
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000045
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000046
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000047
Ví dụ #17 Mảng đệ quy và đa chiều assignment always involves value copying. Use the reference operator to copy an array by reference.
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000048
Bài tập mảng luôn liên quan đến việc sao chép giá trị. Sử dụng toán tử tham chiếu để sao chép một mảng bằng tham chiếu. ¶
Thomas Tulinsky ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000049
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000050
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000051
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000052
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000053
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
6 năm trước ¶
Liberchen tại Gmail Dot Com ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000055
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000056
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000057
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000058
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000059
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000060
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
4 năm trước ¶
Ken nhấn mạnh yap atsign email dot com ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000062
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000063
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000064
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000065
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
14 năm trước ¶
jeff splat codedread spot com ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000067
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000068
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000069
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000070
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
17 năm trước ¶
Hôm qua Php ' er ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000072
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000073
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
5 năm trước ¶
Chris tại ocportal dot com ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000075
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000076
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
9 năm trước ¶
jeff splat codedread spot com ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000078
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000079
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000080
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000081
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000082
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
17 năm trước ¶
Hôm qua Php ' er ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000084
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000085
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000086
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000087
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000088
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
5 năm trước ¶
Chris tại ocportal dot com ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000090
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000091
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
9 năm trước ¶
jeff splat codedread spot com ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000093
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000094
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000095
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000096
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000097
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000098
17 năm trước ¶
jeff splat codedread spot com ¶
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000099
array[ key => value, key2 => value2, key3 => value3, ... ]00
array[ key => value, key2 => value2, key3 => value3, ... ]01
array[ key => value, key2 => value2, key3 => value3, ... ]02
array[ key => value, key2 => value2, key3 => value3, ... ]03
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
17 năm trước ¶
Hôm qua Php ' er ¶
array[ key => value, key2 => value2, key3 => value3, ... ]05
array[ key => value, key2 => value2, key3 => value3, ... ]06
array[ key => value, key2 => value2, key3 => value3, ... ]07
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
5 năm trước ¶
Liberchen tại Gmail Dot Com ¶
array[ key => value, key2 => value2, key3 => value3, ... ]09
array[ key => value, key2 => value2, key3 => value3, ... ]10
array[ key => value, key2 => value2, key3 => value3, ... ]11
array[ key => value, key2 => value2, key3 => value3, ... ]12
array[ key => value, key2 => value2, key3 => value3, ... ]13
array[ key => value, key2 => value2, key3 => value3, ... ]14
array[ key => value, key2 => value2, key3 => value3, ... ]15
array[ key => value, key2 => value2, key3 => value3, ... ]16
array[ key => value, key2 => value2, key3 => value3, ... ]11
array[ key => value, key2 => value2, key3 => value3, ... ]18
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
4 năm trước ¶
Liberchen tại Gmail Dot Com ¶
array[ key => value, key2 => value2, key3 => value3, ... ]20
4 năm trước ¶
Ken nhấn mạnh yap atsign email dot com ¶
array[ key => value, key2 => value2, key3 => value3, ... ]21
array[ key => value, key2 => value2, key3 => value3, ... ]22
array[ key => value, key2 => value2, key3 => value3, ... ]23
array[ key => value, key2 => value2, key3 => value3, ... ]24
array[ key => value, key2 => value2, key3 => value3, ... ]25
array[ key => value, key2 => value2, key3 => value3, ... ]26
array[ key => value, key2 => value2, key3 => value3, ... ]27
array[ key => value, key2 => value2, key3 => value3, ... ]28
array[ key => value, key2 => value2, key3 => value3, ... ]29
array[ key => value, key2 => value2, key3 => value3, ... ]30
array[ key => value, key2 => value2, key3 => value3, ... ]31
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
14 năm trước ¶
Hôm qua Php ' er ¶
array[ key => value, key2 => value2, key3 => value3, ... ]33
array[ key => value, key2 => value2, key3 => value3, ... ]34
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
5 năm trước ¶
Chris tại ocportal dot com ¶
array[ key => value, key2 => value2, key3 => value3, ... ]36
array[ key => value, key2 => value2, key3 => value3, ... ]37
array[ key => value, key2 => value2, key3 => value3, ... ]38
9 năm trước ¶
ia [at] zoznam [dot] sk ¶
array[ key => value, key2 => value2, key3 => value3, ... ]39
array[ key => value, key2 => value2, key3 => value3, ... ]40
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054
Phplatino tại gmail dot com ¶ ¶
Chris tại ocportal dot com ¶
array[ key => value, key2 => value2, key3 => value3, ... ]42
array[ key => value, key2 => value2, key3 => value3, ... ]43
Sonoo salary: 350000 John salary: 450000 Kartik salary: 20000054