Hướng dẫn php access array by index - mảng truy cập php theo chỉ mục

Không có mối tương quan giữa các khóa chỉ số số và kết hợp.

Khi bạn nói rằng bạn muốn đặt giá trị của một mảng kết hợp bằng cách sử dụng chỉ mục mảng của khóa/giá trị, thì bạn phải sử dụng khóa đã cho, cài đặt

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
3 không giống như cài đặt
print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
4.

Hãy xem xét mảng này

print_r( array('foo', 'foo' => 'bar', 'baz', 'some' => 'value') );

Điều này sẽ cho

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)

FOO là phần tử thứ hai trong mảng. Đó là phần bù, nhưng nó không liên quan gì đến chỉ mục 1. Như bạn có thể thấy, trong mảng đó ở trên, INDEX 1 được liên kết với

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
5. Thật sai lầm khi giả định rằng chỉ vì
print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
6 là khóa liên kết đầu tiên mà nó có liên quan đến khóa số thực tế 1. Giống như
print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
7 không tương quan với 2.offset, but it has nothing to do with the index 1. As you can see, in that array above, index 1 is associated with
print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
5. It is wrong to assume that just because
print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
6 is the first associative key it has anything to do with the actual numeric key 1. Just like
print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
7 does not correlate to 2.

Tương tự như vậy, đối với một mảng hỗn hợp như được hiển thị ở trên, giải pháp với

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
8 được đề xuất ở nơi khác trên trang web này sẽ không hoạt động, bởi vì

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );

sẽ cho

Array
(
    [0] => 0
    [1] => foo
    [2] => 1
    [3] => some
)

Vì vậy, khi bạn làm

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
9, bạn thực sự đang làm
print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
4. Nhưng nếu bạn muốn truy cập giá trị liên kết thứ hai trong mảng đó (
Array
(
    [0] => 0
    [1] => foo
    [2] => 1
    [3] => some
)
1), bạn không thể thực hiện
Array
(
    [0] => 0
    [1] => foo
    [2] => 1
    [3] => some
)
2 vì điều đó sẽ đánh giá thành
print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
3 và đó là
print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
5.

Phần bù của một phần tử hoàn toàn không liên quan đến khóa hoặc giá trị của nó

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);

Thực sự có nghĩa là

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)

có nghĩa là phần tử tại Offset 0 là foo mặc dù đó là khóa là 100. Nếu bạn muốn trích xuất các phần tử từ một mảng bằng cách bù, bạn phải sử dụng

$third = array_splice($array, 2, 1);
echo $third[0]; // baz

Điều này sẽ tạo ra một mảng chỉ giữ phần tử ở vị trí thứ ba.

Hoặc bạn có thể sử dụng

Array
(
    [0] => 0
    [1] => foo
    [2] => 1
    [3] => some
)
5.
Array
(
    [0] => 0
    [1] => foo
    [2] => 1
    [3] => some
)
5 thực hiện giao diện
Array
(
    [0] => 0
    [1] => foo
    [2] => 1
    [3] => some
)
7 cho phép bạn tìm kiếm một vị trí/bù cụ thể trong mảng và sau đó lấy điều đó:

$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value

Một mảng trong PHP thực sự là một bản đồ được đặt hàng. Bản đồ là một loại liên kết các giá trị với các khóa. Loại này được tối ưu hóa cho một số cách sử dụng khác nhau; Nó có thể được coi là một mảng, danh sách (vector), bảng băm (một triển khai bản đồ), từ điển, thu thập, ngăn xếp, hàng đợi, và có thể nhiều hơn nữa. Vì các giá trị mảng có thể là các mảng khác, cây và mảng đa chiều cũng có thể.array 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.

Giải thích về các cấu trúc dữ liệu đó nằm ngoài phạm vi của hướng dẫn này, nhưng ít nhất một ví dụ được cung cấp cho mỗi chúng. Để biết thêm thông tin, hãy hướng tới các tài liệu đáng kể tồn tại về chủ đề rộng lớn này.

Cú pháp

Chỉ định với Array ()array()

Một mảng có thể được tạo bằng cách sử dụng cấu trúc ngôn ngữ mảng (). Nó lấy bất kỳ số lượng các cặp

Array
(
    [0] => 0
    [1] => foo
    [2] => 1
    [3] => some
)
8 được phân tách bằng dấu phẩy làm đối số.array can be created using the array() language construct. It takes any number of comma-separated
Array
(
    [0] => 0
    [1] => foo
    [2] => 1
    [3] => some
)
8 pairs as arguments.

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)

Dấu phẩy sau phần tử mảng cuối cùng là tùy chọn và có thể được bỏ qua. Điều này thường được thực hiện cho các mảng một dòng, tức là

Array
(
    [0] => 0
    [1] => foo
    [2] => 1
    [3] => some
)
9 được ưu tiên hơn
print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
0. Mặt khác, đối với các mảng đa dòng, dấu phẩy kéo dài thường được sử dụng, vì nó cho phép thêm các yếu tố mới dễ dàng hơn ở cuối.

Ghi chú::

Một cú pháp mảng ngắn tồn tại thay thế

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
1 bằng
print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2.

Ví dụ #1 một mảng đơn giản

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
3

Khóa có thể là một int hoặc một chuỗi. Giá trị có thể là bất kỳ loại.key can either be an int or a string. The value can be of any type.

Ngoài ra, các diễn viên khóa sau sẽ xảy ra:key casts will occur:

  • Các chuỗi chứa ints thập phân hợp lệ, trừ khi số được đi trước bằng dấu
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    4, sẽ được chuyển theo loại INT. Ví dụ. Khóa
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    5 thực sự sẽ được lưu trữ theo
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    6. Mặt khác,
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    7 sẽ không được sử dụng, vì nó không phải là số nguyên thập phân hợp lệ.
    s containing valid decimal ints, unless the number is preceded by a
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    4 sign, will be cast to the int type. E.g. the key
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    5 will actually be stored under
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    6. On the other hand
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    7 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
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    8 thực sự sẽ được lưu trữ theo
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    6.
    s are also cast to ints, which means that the fractional part will be truncated. E.g. the key
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    8 will actually be stored under
    print_r(
        array(
            100    => 'foo',
            'foo'  => 'bar',
            50     => 'baz',
            'some' => 'value'
        )
    );
    
    6.
  • Bools cũng được đúc theo INT, tức là khóa
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    0 thực sự sẽ được lưu trữ theo
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    1 và khóa
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    2 theo
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    3.
    s are cast to ints, too, i.e. the key
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    0 will actually be stored under
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    1 and the key
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    2 under
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    3.
  • NULL sẽ được đúc vào chuỗi trống, tức là khóa
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    4 sẽ thực sự được lưu trữ theo
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    5.
    will be cast to the empty string, i.e. the key
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    4 will actually be stored under
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    5.
  • 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
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    6.
    s and objects can not be used as keys. Doing so will result in a warning:
    Array
    ( //key       value     offset/position
        [100]  => foo       // 0
        [foo]  => bar       // 1
        [50]   => baz       // 2
        [some] => value     // 3
    )
    
    6.

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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
7

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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
1, 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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
9 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

$third = array_splice($array, 2, 1);
echo $third[0]; // baz
0

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
0

Vì tất cả các khóa trong ví dụ trên được chuyển đến

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
1, 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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
9 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.

$third = array_splice($array, 2, 1);
echo $third[0]; // baz
1

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
1

Vì tất cả các khóa trong ví dụ trên được chuyển đến

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
1, 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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
9 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.

$third = array_splice($array, 2, 1);
echo $third[0]; // baz
2

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
2

Vì tất cả các khóa trong ví dụ trên được chuyển đến

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
1, 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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
9 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

$third = array_splice($array, 2, 1);
echo $third[0]; // baz
6

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
3

Vì tất cả các khóa trong ví dụ trên được chuyển đến
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
1, 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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
9 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

$third = array_splice($array, 2, 1);
echo $third[0]; // baz
8

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
4

Ghi chú::

Một cú pháp mảng ngắn tồn tại thay thế

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
1 bằng
print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2.

Ví dụ #1 một mảng đơn giản

$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
1

Ghi chú::

Một cú pháp mảng ngắn tồn tại thay thế

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
1 bằng
print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2.
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
2
-level error message (
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
3
-level prior to PHP 8.0.0) will be issued, and the result will be
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
4
.

Ghi chú::

Một cú pháp mảng ngắn tồn tại thay thế

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
1 bằng
print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2.string yields
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
4
. Prior to PHP 7.4.0, that did not issue an error message. As of PHP 7.4.0, this issues
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
3
; as of PHP 8.0.0, this issues
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
2
.

Ví dụ #1 một mảng đơn giản

Một mảng hiện có có thể được sửa đổi bằng cách cài đặt rõ ràng các giá trị trong đó.array can be modified by explicitly setting values in it.

Điều này được thực hiện bằng cách gán các giá trị cho mảng, chỉ định khóa trong dấu ngoặc. Khóa cũng có thể được bỏ qua, dẫn đến một cặp dấu ngoặc trống (

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2).array, specifying the key in brackets. The key can also be omitted, resulting in an empty pair of brackets (
print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2).

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
5

Nếu $ ARR chưa tồn tại hoặc được đặt thành

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
4 hoặc
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
2, nó sẽ được tạo ra, vì vậy đây cũng là một cách khác để tạo ra một mảng. Tuy nhiên, thực tiễn này không được khuyến khích bởi vì nếu $ mảng đã chứa một số giá trị (ví dụ: chuỗi từ biến yêu cầu) thì giá trị này sẽ ở lại vị trí và
print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2 thực sự có thể đứng cho toán tử truy cập chuỗi. Luôn luôn tốt hơn để khởi tạo một biến bằng một gán trực tiếp.
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
4
or
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
2
, 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
print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2 may actually stand for string access operator. It is always better to initialize a variable by a direct assignment.

Lưu ý: Kể từ Php 7.1.0, việc áp dụng toán tử chỉ mục trống trên một chuỗi ném một lỗi nghiêm trọng. Trước đây, chuỗi được chuyển đổi âm thầm thành một mảng.: 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.

Lưu ý: Kể từ Php 8.1.0, việc tạo một mảng mới từ giá trị

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
2 không được chấp nhận. Tạo một mảng mới từ
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
4 và các giá trị không xác định vẫn được cho phép.
: As of PHP 8.1.0, creating a new array from
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
2
value is deprecated. Creating a new array from
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
4
and undefined values is still allowed.

Để thay đổi một giá trị nhất định, hãy gán một giá trị mới cho phần tử đó bằng khóa của nó. Để xóa một cặp khóa/giá trị, hãy gọi hàm Unset () trên đó.unset() function on it.

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)
4

Ghi chú::

Như đã đề cập ở trên, nếu không có khóa nào được chỉ định, tối đa của các chỉ số INT hiện tại được thực hiện và khóa mới sẽ là giá trị tối đa đó cộng với 1 (nhưng ít nhất 0). Nếu chưa có chỉ số INT nào tồn tại, khóa sẽ là

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
3 (không).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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
3 (zero).

Lưu ý rằng khóa số nguyên tối đa được sử dụng cho điều này hiện không tồn tại trong mảng. Nó chỉ cần tồn tại trong mảng vào một thời điểm kể từ lần cuối cùng mảng được chỉ bảng lại. Ví dụ sau minh họa:array. 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(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)
6

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
6

Mảng phá hủy

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ữ

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2 (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(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)
8

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)
9

array(1) {
  [1]=>
  string(1) "d"
}
0

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(1) {
  [1]=>
  string(1) "d"
}
1

array(1) {
  [1]=>
  string(1) "d"
}
2

array(1) {
  [1]=>
  string(1) "d"
}
3

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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
3.

array(1) {
  [1]=>
  string(1) "d"
}
5

array(1) {
  [1]=>
  string(1) "d"
}
6

array(1) {
  [1]=>
  string(1) "d"
}
7

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(1) {
  [1]=>
  string(1) "d"
}
8

array(1) {
  [1]=>
  string(1) "d"
}
6

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
00

Phá hủy mảng có thể được sử dụng để dễ dàng hoán đổi hai biến.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
01

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)
9

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
03

Ghi chú::

Như đã đề cập ở trên, nếu không có khóa nào được chỉ định, tối đa của các chỉ số INT hiện tại được thực hiện và khóa mới sẽ là giá trị tối đa đó cộng với 1 (nhưng ít nhất 0). Nếu chưa có chỉ số INT nào tồn tại, khóa sẽ là

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
3 (không).

Ghi chú::

Như đã đề cập ở trên, nếu không có khóa nào được chỉ định, tối đa của các chỉ số INT hiện tại được thực hiện và khóa mới sẽ là giá trị tối đa đó cộng với 1 (nhưng ít nhất 0). Nếu chưa có chỉ số INT nào tồn tại, khóa sẽ là

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
3 (không).
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
2
-level error message (
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
3
-level prior to PHP 8.0.0) will be issued, and the result will be
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
4
.

Lưu ý rằng khóa số nguyên tối đa được sử dụng cho điều này hiện không tồn tại trong mảng. Nó chỉ cần tồn tại trong mảng vào một thời điểm kể từ lần cuối cùng mảng được chỉ bảng lại. Ví dụ sau minh họa:

Ví dụ trên sẽ xuất ra:

Ghi chú::

Như đã đề cập ở trên, nếu không có khóa nào được chỉ định, tối đa của các chỉ số INT hiện tại được thực hiện và khóa mới sẽ là giá trị tối đa đó cộng với 1 (nhưng ít nhất 0). Nếu chưa có chỉ số INT nào tồn tại, khóa sẽ là

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
3 (không).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.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
08

Lưu ý rằng khóa số nguyên tối đa được sử dụng cho điều này hiện không tồn tại trong mảng. Nó chỉ cần tồn tại trong mảng vào một thời điểm kể từ lần cuối cùng mảng được chỉ bảng lại. Ví dụ sau minh họa:arrays. It provides an easy way to traverse an array.

Ví dụ trên sẽ xuất ra:

Mảng phá hủy

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ữ

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2 (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.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
12

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ó.string (

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
14 - 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
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
13
, then PHP will substitute in the string
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
14 and use that.

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
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
3.

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.

$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
3. This has been deprecated as of PHP 7.2.0, and issues an error of level
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
2
. As of PHP 8.0.0, it has been removed and throws an Error exception.

Phá hủy mảng có thể được sử dụng để dễ dàng hoán đổi hai biến.: 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.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
19

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
7

Mảng phá hủy

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
20

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
21

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
22

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ữ

print_r(
    array(
        100    => 'foo',
        'foo'  => 'bar',
        50     => 'baz',
        'some' => 'value'
    )
);
2 (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.
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current(); // value
3
level errors (by setting it to
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
24
, for example), such uses will become immediately visible. By default, error_reporting is set not to show notices.

Như đã nêu trong phần Cú pháp, những gì bên trong dấu ngoặc vuông ('

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)
9' và '
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
26') 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:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
27

Đâ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ố:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
28

Lưu ý rằng

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
29 cũng là một định danh hợp lệ, giống như
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
13 trong ví dụ đầu tiên. Nhưng ví dụ cuối cùng trên thực tế giống như viết:
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
29
is also a valid identifier, just like
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
13 in the first example. But the last example is in fact the same as writing:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
31

bởi vì

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
29 bằng
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
1, v.v.
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
29
equals
Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
1, etc.

Vậy tại sao nó xấu sau đó?

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ừ

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
34 và
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
35 theo cách này, vì chúng là từ khóa dành riêng.

Lưu ý: Để nhắc lại, bên trong một chuỗi được trích dẫn kép, việc không chỉ mục mảng xung quanh có báo giá để

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
36 là hợp lệ. Xem các ví dụ trên để biết chi tiết về lý do tại sao cũng như phần về phân tích cú pháp biến trong chuỗi.: To reiterate, inside a double-quoted string, it's valid to not surround array indexes with quotes so
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
36 is valid. See the above examples for details on why as well as the section on variable parsing in strings.

Chuyển đổi thành mảng

Đối với bất kỳ loại int, float, chuỗi, bool và tài nguyên nào, việc chuyển đổi giá trị thành một mảng dẫn đến một mảng có một phần tử duy nhất có chỉ mục bằng 0 và giá trị của vô hướng được chuyển đổi. Nói cách khác,

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
37 giống hệt như
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
38.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,
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
37 is exactly the same as
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
38.

Nếu một đối tượng được chuyển đổi thành một mảng, kết quả là một mảng có các phần tử là thuộc tính của đối tượng. Các khóa là tên biến thành viên, với một vài ngoại lệ đáng chú ý: các thuộc tính số nguyên không thể truy cập được; Các biến riêng có tên lớp được chuẩn bị cho tên biến; Các biến được bảo vệ có '*' được chuẩn bị cho tên biến. Các giá trị được chuẩn bị này có

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
39 byte ở hai bên. Các thuộc tính gõ không được hưởng được loại bỏ âm thầm.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
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
39 bytes on either side. Uninitialized typed properties are silently discarded.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
40

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
8

Những

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
39 này có thể dẫn đến một số hành vi bất ngờ:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
42

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
43

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
44

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
9

Những

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
39 này có thể dẫn đến một số hành vi bất ngờ:

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'.

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
4 to an array results in an empty array.

Chuyển đổi Array ( //key value offset/position [100] => foo // 0 [foo] => bar // 1 [50] => baz // 2 [some] => value // 3 ) 4 thành một mảng dẫn đến một mảng trống.

Mảng Giải nénTraversable can be expanded. Array unpacking with

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
04 is available as of PHP 7.4.0.

Một mảng được tiền tố bởi

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
04 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
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
04 có sẵn kể từ 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ử

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
04:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
49

Ví dụ #9 Mảng đơn giản Giải nénarray_merge() function. That is, later string keys overwrite earlier ones and integer keys are renumbered:

Giải nén một mảng với toán tử

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
04 tuân 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
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
51

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
52

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
53

Ví dụ #10 Mảng Giải nén với khóa trùng lặp:

Ghi chú:TypeError. Such keys can only be generated by a Traversable object.

Ví dụ #10 Mảng Giải nén với khóa trùng lặp:

Ghi chú:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
54

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
55

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
56

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.

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ợ:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
57

Ví dụ

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
58

Loại mảng trong PHP rất linh hoạt. Dưới đây là một số ví dụ:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
59

array(1) {
  [1]=>
  string(1) "d"
}
2

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
61

Ví dụ trên sẽ xuất ra:

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
0

Những

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
39 này có thể dẫn đến một số hành vi bất ngờ:array directly is possible by passing them by reference.

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'.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
62

Ví dụ trên sẽ xuất ra:

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
1

Những

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
39 này có thể dẫn đến một số hành vi bất ngờ:

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'.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
63

Ví dụ trên sẽ xuất ra:

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
2

Những

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
39 này có thể dẫn đến một số hành vi bất ngờ:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
64

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'.s 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.

Chuyển đổi

Array
( //key       value     offset/position
    [100]  => foo       // 0
    [foo]  => bar       // 1
    [50]   => baz       // 2
    [some] => value     // 3
)
4 thành một mảng dẫn đến một mảng trống.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
65

Mảng Giải nénarray can be anything, it can also be another array. This enables the creation of recursive and multi-dimensional arrays.

Một mảng được tiền tố bởi

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
04 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
Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
04 có sẵn kể từ Php 7.4.0.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
66

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
67

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
68

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ử

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
04: assignment always involves value copying. Use the reference operator to copy an array by reference.

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
69

Ví dụ #9 Mảng đơn giản Giải nén

Giải nén một mảng với toán tử

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
04 tuân 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
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
70

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
71

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
72

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
73

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
74

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Ví dụ #10 Mảng Giải nén với khóa trùng lặp

Ghi chú:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
76

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
77

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
78

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
79

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
80

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
81

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

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.

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ợ:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
83

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
84

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
85

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
86

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Ví dụ

Loại mảng trong PHP rất linh hoạt. Dưới đây là một số ví dụ:

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
88

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
89

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
90

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
91

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Hôm qua Php ' er ¶

5 năm trước

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
93

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
94

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Chris tại ocportal dot com ¶

9 năm trước

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
96

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
97

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

ia [at] zoznam [dot] sk ¶

17 năm trước

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
99

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
00

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
01

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
02

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
03

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Phplatino tại gmail dot com ¶

1 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
05

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
06

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
07

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
08

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
09

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Anisgazig tại Gmail Dot Com ¶

3 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
11

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
12

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Caifara aaaat im dooaat là ¶

17 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
14

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
15

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
16

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
17

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
18

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
19

Phplatino tại gmail dot com ¶

17 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
20

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
21

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
22

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
23

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
24

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Phplatino tại gmail dot com ¶

1 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
26

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
27

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
28

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Anisgazig tại Gmail Dot Com ¶

3 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
30

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
31

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
32

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
33

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
34

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
35

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
36

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
37

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
32

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
39

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Caifara aaaat im dooaat là ¶

3 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
41

Caifara aaaat im dooaat là ¶

Lars-phpcomments tại Ukmix Dot Net ¶

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
42

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
43

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
44

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
45

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
46

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
47

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
48

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
49

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
50

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
51

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
52

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Dylanfj700 tại Gmail Dot Com ¶

1 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
54

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
55

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Anisgazig tại Gmail Dot Com ¶

3 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
57

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
58

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
59

Caifara aaaat im dooaat là ¶

Lars-phpcomments tại Ukmix Dot Net ¶

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
60

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
61

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Dylanfj700 tại Gmail Dot Com ¶

9 năm trước

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
63

print_r( array_keys(array('foo', 'foo' => 'bar', 'baz', 'some' => 'value')) );
64

Array
(
    [0] => foo
    [foo] => bar
    [1] => baz
    [some] => value
)
75

Làm thế nào để bạn truy cập một mảng bằng chỉ mục?

Truy cập các phần tử mảng Mảng lập chỉ mục giống như truy cập một phần tử mảng. Bạn có thể truy cập một phần tử mảng bằng cách tham khảo số chỉ mục của nó. Các chỉ mục trong các mảng numpy bắt đầu bằng 0, nghĩa là phần tử thứ nhất có chỉ mục 0 và phần thứ hai có chỉ số 1, v.v.by referring to its index number. The indexes in NumPy arrays start with 0, meaning that the first element has index 0, and the second has index 1 etc.

Làm thế nào để bạn truy cập các phần tử mảng trong PHP?

Truy cập các phần tử trong mảng PHP Các phần tử trong mảng loại khóa số PHP được truy cập bằng cách tham chiếu biến chứa mảng, theo sau là chỉ mục vào mảng của phần tử cần thiết được đặt trong dấu ngoặc vuông ([]).referencing the variable containing the array, followed by the index into array of the required element enclosed in square brackets ([]).

Làm thế nào để bạn truy cập các giá trị trong một mảng?

Chúng ta có thể truy cập các phần tử của một mảng bằng toán tử chỉ mục [].Tất cả những gì bạn cần làm để truy cập một yếu tố cụ thể là gọi cho mảng bạn đã tạo.Bên cạnh mảng là toán tử chỉ mục [], sẽ có giá trị của vị trí chỉ mục của phần tử cụ thể từ một mảng nhất định.using the index operator [] . All you need do in order to access a particular element is to call the array you created. Beside the array is the index [] operator, which will have the value of the particular element's index position from a given array.

Làm cách nào để lặp lại một mảng trong PHP?

14 câu trả lời..
print_r ($ mảng);hoặc nếu bạn muốn mảng được định dạng độc đáo thì: echo '';print_r ($ mảng);echo '';..
Sử dụng var_dump ($ mảng) để có thêm thông tin về nội dung trong mảng như kiểu dữ liệu và độ dài ..
Bạn có thể lặp lại mảng bằng cách sử dụng php's foreach ();và nhận được đầu ra mong muốn ..