Xóa mục khỏi mảng kết hợp PHP
Hôm nay chúng ta sẽ viết một bài viết ngắn về cách loại bỏ các khóa khỏi một mảng kết hợp trong PHP và lấy một mảng không có khóa để trả về một mảng reindex mới bắt đầu bằng chỉ mục 0 Show
Tham khảo bài viết lấy key từ mảng kết hợp trong PHP Các cách xóa khóa khỏi mảng kết hợp
1. Sử dụng chức năng tích hợpChúng ta có sẵn hàm array_values() để loại bỏ các khóa và tạo lại mảng với các khóa mới bắt đầu từ 0. Nó trả về một mảng giá trị được lập chỉ mục Các đối tượng JavaScript có thể được chấp nhận dưới dạng các khóa ánh xạ mảng kết hợp tới các giá trị. Để xóa khóa khỏi một đối tượng trong JavaScript, bạn có thể sử dụng toán tử xóa Mục lục Hiển thị
const obj = {tên trang web. bảng điều khiển 'w3docs' }. nhật ký (obj. hasOwnProperty('siteName')); . nhật ký (obj. hasOwnProperty('siteName')); Khi thao tác xóa được áp dụng cho thuộc tính chỉ mục của Mảng, bạn sẽ tạo một mảng có mật độ dân cư thưa thớt, mảng có chỉ mục bị thiếu Khi làm việc với các thể hiện của Array, nếu bạn không muốn tạo một mảng thưa thớt, thì bạn có thể sử dụng các phương thức Array#splice hoặc Array#splice Mảng có chỉ mục được đặt tên được gọi là mảng kết hợp. Trong JavaScript, mảng luôn sử dụng chỉ mục được đánh số. Mảng kết hợp là đối tượng chữ Toán tử xóa được sử dụng để xóa khóa khỏi đối tượng. Nó sẽ tự động được giải phóng nếu không có thêm tham chiếu nào đến cùng một khóa được giữ. Nó sẽ trả về true nếu việc xóa thành công, nếu không nó sẽ trả về false. Tuy nhiên, nếu khóa mà bạn đang cố xóa không tồn tại, toán tử sẽ không có tác dụng và sẽ trả về true Mảng array trong PHP thực chất là một bản đồ có thứ tự. 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ố mục đích sử dụng khác nhau; . Vì các giá trị của mảng có thể là mảng khác, cây và đa chiều 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 sách hướng dẫn này, nhưng ít nhất một ví dụ được cung cấp cho mỗi cấu trúc đó. Để biết thêm thông tin, hãy xem tài liệu đáng kể tồn tại về chủ đề rộng lớn này cú phápChỉ định với array()Có thể tạo một mảng bằng cách sử dụng array() language construct. It takes any number of comma-separated array(1) { [1]=> string(1) "d" }5 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ể bỏ qua. Điều này thường được thực hiện cho các mảng một dòng, tôi. e. array(1) { [1]=> string(1) "d" }6 được ưu tiên hơn array(1) { [1]=> string(1) "d" }7. Mặt khác, đối với các mảng nhiều dòng, dấu phẩy ở cuối thường được sử dụng, vì nó cho phép dễ dàng thêm các phần tử mới vào cuối
Ví dụ #1 Một mảng đơn giản array(4) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "foo" [100]=> int(-100) [-100]=> int(100) }0 Khóa key có thể là int hoặc a . string. The giá trị có thể thuộc bất kỳ loại nào. Ngoài ra, phím sau sẽ diễn ra.
Nếu nhiều phần tử trong khai báo mảng sử dụng cùng một khóa, thì chỉ phần tử 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ụ #2 Ví dụ về truyền và ghi đè loại array( key => value, key2 => value2, key3 => value3, ... )64 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 thành array(4) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "foo" [100]=> int(-100) [-100]=> int(100) }8, giá trị sẽ được ghi đè trên mọi phần tử mới và giá trị được gán cuối cùng array( key => value, key2 => value2, key3 => value3, ... )66 là giá trị duy nhất còn lại Mảng PHP có thể chứa các khóa int và chuỗi tại . Ví dụ #3 Hỗn hợp khóa int và chuỗi < array( key => value, key2 => value2, key3 => value3, ... )67 Ví dụ trên sẽ xuất ra array(4) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "foo" [100]=> int(-100) [-100]=> int(100) } Khóa key là tùy chọn. Nếu nó không được chỉ định, PHP sẽ sử dụng phần tăng của khóa int lớn nhất đã sử dụng trước đó. Ví dụ #4 Các mảng được lập chỉ mục không có khóa array( key => value, key2 => value2, key3 => value3, ... )68 Ví dụ trên sẽ xuất ra array( key => value, key2 => value2, key3 => value3, ... )6 Có thể chỉ định khóa cho một số phần tử và bỏ nó cho những phần tử khác Ví dụ #5 Phím không có trên tất cả các phần tử array( key => value, key2 => value2, key3 => value3, ... )69 Ví dụ trên sẽ xuất ra array(1) { [1]=> string(1) "d" }9 Như bạn có thể thấy giá trị cuối cùng array( key => value, key2 => value2, key3 => value3, ... )66 đã được gán khóa array(1) { [1]=> string(1) "d" }91. Điều này là do khóa số nguyên lớn nhất trước đó là array(1) { [1]=> string(1) "d" }92 Ví dụ #6 Ví dụ về ghi đè và truyền kiểu phức tạp Ví dụ này bao gồm tất cả các biến thể của kiểu truyền khóa và ghi đè các phần tử array(1) { [1]=> string(1) "d" }93 Ví dụ trên sẽ xuất ra array(1) { [1]=> string(1) "d" }4 Truy cập các phần tử mảng bằng cú pháp dấu ngoặc vuôngCác phần tử mảng có thể được truy cập bằng cú pháp array(1) { [1]=> string(1) "d" }94 Ví dụ #7 Truy cập các phần tử mảng array(1) { [1]=> string(1) "d" }95 Ví dụ trên sẽ xuất ra array(1) { [1]=> string(1) "d" }7
Ví dụ #8 Hội thảo mảng array(1) { [1]=> string(1) "d" }98
Tạo/sửa đổi với cú pháp dấu ngoặc vuôngMảng hiện có có thể được sửa đổi bằng cách đặt rõ ràng các giá trị trong đó. Đ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 ngoặc đơn. Khóa cũng có thể được bỏ qua, dẫn đến một cặp dấu ngoặc trống ( array(1) { [1]=> string(1) "d" }9). array(1) { [1]=> string(1) "d" }8 Nếu $arr chưa tồn tại hoặc được đặt thành array( key => value, key2 => value2, key3 => value3, ... )61 hoặc array(4) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "foo" [100]=> int(-100) [-100]=> int(100) }9, nó sẽ được tạo, vì vậy đây cũng là một cách khác để tạo mảng. This practice is however discouraged because if $arr already contains some value (e.g. chuỗi từ biến yêu cầu) thì giá trị này sẽ giữ nguyên vị trí và array(1) { [1]=> string(1) "d" }9 thực sự có thể đại diện cho toán tử truy cập chuỗi. Tốt hơn hết là khởi tạo một biến bằng cách gán trực tiếp.
Để thay đổi một giá trị nhất định, hãy gán 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 đó. array(1) { [1]=> string(1) "d" }71
Phá hủy mảngMảng có thể được hủy cấu trúc bằng cách sử dụng array(1) { [1]=> string(1) "d" }9 (kể từ PHP 7. 1. 0) hoặc list() cấu trúc ngôn ngữ. Các cấu trúc này có thể được sử dụng để hủy cấu trúc một mảng thành các biến riêng biệt. array(1) { [1]=> string(1) "d" }75 array(1) { [1]=> string(1) "d" }76 array(1) { [1]=> string(1) "d" }77 Phá hủy mảng có thể được sử dụng trong foreach để hủy cấu trúc một mảng đa chiều trong khi lặp lại nó array(1) { [1]=> string(1) "d" }78 array(1) { [1]=> string(1) "d" }79 array(1) { [1]=> string(1) "d" }80 Các phần tử của mảng sẽ bị bỏ qua nếu không cung cấp biến. Quá trình phá hủy mảng luôn bắt đầu tại chỉ mục array( key => value, key2 => value2, key3 => value3, ... )60 array(1) { [1]=> string(1) "d" }82 array(1) { [1]=> string(1) "d" }83 array(1) { [1]=> string(1) "d" }84 Kể từ PHP 7. 1. 0, mảng kết hợp cũng có thể bị hủy cấu trúc. Điều này cũng cho phép dễ dàng lựa chọn đúng phần tử 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" }85 array(1) { [1]=> string(1) "d" }83 array(1) { [1]=> string(1) "d" }87 Phá hủy mảng có thể được sử dụng để dễ dàng hoán đổi hai biến array(1) { [1]=> string(1) "d" }88 array(1) { [1]=> string(1) "d" }76 array(1) { [1]=> string(1) "d" }70
chức năng hữu íchCó khá nhiều hàm hữu ích để làm việc với mảng. Xem phần hàm mảng
Cấu trúc điều khiển foreach tồn tại riêng cho mảng s. Nó cung cấp một cách dễ dàng để duyệt qua một mảng . Mảng nên và không nênTại sao |