PHP loại bỏ các phần tử phù hợp khỏi mảng
Giả sử bạn có một mảng và bạn muốn xóa một hoặc nhiều phần tử khỏi mảng đó bằng PHP. Có thể bạn phải xóa một phần tử có giá trị cụ thể hoặc có thể bạn phải xóa nhiều phần tử liên tiếp. Trong bài viết này, bạn sẽ tìm hiểu về các hàm PHP sẵn có khác nhau có thể giúp bạn xóa một hoặc nhiều phần tử dựa trên khóa hoặc giá trị của chúng. Dưới đây là một vài biến mà chúng ta sẽ sử dụng Show
PHP
Tôi đã sử dụng cú pháp mảng ngắn trong đoạn mã trên để thay thế 1 bằng 2Trên trang này
Xóa một phần tử khỏi một mảng bằng khóa của nó bằng cách sử dụng unset()Cách dễ nhất để loại bỏ hoặc xóa một phần tử khỏi một mảng trong PHP là sử dụng hàm unset(). Hàm này được sử dụng để bỏ đặt một biến đã cho. Nói cách khác, bạn có thể sử dụng nó để hủy bất kỳ biến nào trong mã của mình Để xóa một phần tử mảng bằng khóa của nó, hãy cung cấp hàm 3 với khóa của phần tử mà bạn muốn xóa. Trong trường hợp mảng số, khóa này sẽ là chỉ số của phần tử. Đây là một ví dụPHP
Bạn nên lưu ý rằng các khóa của cả hai mảng không thay đổi sau khi xóa phần tử khỏi mảng. Nếu bạn muốn lập chỉ mục lại các khóa sau khi xóa phần tử để không có khoảng trống, bạn có thể sử dụng hàm array_values(). Hàm này trả về một mảng được lập chỉ mục gồm tất cả các giá trị trong mảng được cung cấp Hãy nhớ rằng 0 cũng sẽ thay đổi các khóa của mảng kết hợp thành chỉ số. Ví dụ sau sẽ làm rõ cách lập chỉ mục lại một mảng sau khi loại bỏ một phần tử hoạt độngPHP
Xóa một phần tử khỏi một mảng theo giá trị của nó bằng cách sử dụng unset()Vấn đề duy nhất với giải pháp trên là bạn thực sự cần biết khóa để xóa một phần tử. Giả sử bạn chỉ biết giá trị của phần tử mà bạn muốn xóa và không biết về khóa của phần tử đó. Trong những trường hợp như vậy, trước tiên bạn có thể sử dụng hàm array_search() trong PHP để lấy khóa cho một giá trị đã cho, sau đó sử dụng 3 để xóa phần tửPHP
Như bạn đã thấy trong ví dụ trên, bạn có thể sử dụng đồng thời 2 và 3 để loại bỏ hoặc xóa một phần tử mảng theo giá trị của nóSử dụng array_splice() để xóa nhiều phần tử liên tiếp khỏi một mảngHàm array_splice() trong PHP được sử dụng để loại bỏ một phần của mảng và thay thế bằng phần khác. Tuy nhiên, cung cấp thay thế là tùy chọn và bạn có thể sử dụng chức năng này để loại bỏ một phần của mảng trong một lần. Đây là một ví dụ PHP
Bên cạnh việc loại bỏ nhiều phần tử cùng một lúc, một ưu điểm khác của phương pháp này là các phím số được tự động lập chỉ mục lại. Đồng thời, các khóa của mảng kết hợp không thay đổi Một điểm quan trọng mà bạn nên nhớ là bạn phải chuyển phần bù làm tham số thứ hai chứ không phải khóa. Đó là lý do tại sao chúng tôi không chuyển khóa 4 làm giá trị của tham số 5 thứ hai khi xóa các phần tử khỏi mảng kết hợp. Tham số thứ ba được sử dụng để chỉ định số lượng phần tử bắt đầu từ 6 mà chúng tôi muốn xóa. Bạn có thể đặt thành 1 để xóa một phần tử hoặc đặt thành một giá trị cao hơn khác để xóa nhiều phần tửSử dụng array_diff() để xóa nhiều phần tử theo giá trị của chúngMặc dù 5 có thể xóa nhiều phần tử khỏi bất kỳ phần tử nào cùng một lúc, nhưng nó làm như vậy mà không cần so sánh khóa hoặc giá trị. Một vấn đề khác với 5 là nó sẽ xóa các phần tử sau phần bù một cách tuần tự, do đó bạn sẽ không thể sử dụng nó để xóa các phần tử không liên tiếpĐiều gì sẽ xảy ra nếu bạn muốn xóa các phần tử mảng theo giá trị của chúng và các phần tử đó không được đặt theo thứ tự? . Hàm này được sử dụng để loại bỏ tất cả các phần tử trong mảng đầu tiên cũng có trong mảng thứ hai. Nói cách khác, bạn có thể sử dụng phương pháp này để loại bỏ các phần tử mảng không liên tiếp theo giá trị của chúng một cách dễ dàng. Bạn nên lưu ý rằng các khóa trong mảng thứ hai không quan trọng. Chỉ các giá trị cần khớp để loại bỏ các phần tử PHP 2Như bạn có thể thấy trong ví dụ trên, bạn có thể sử dụng kỹ thuật này để loại bỏ nhiều phần tử theo giá trị của chúng khỏi mảng số cũng như mảng kết hợp. Một điều mà tôi muốn chỉ ra là các khóa trong mảng thứ hai không nhất thiết phải khớp với mảng đầu tiên để xóa thành công Sử dụng array_diff_key() để xóa nhiều phần tử mảng bằng khóa của chúngGiống như bạn sử dụng 9 để xóa nhiều phần tử không liên tiếp khỏi một mảng theo giá trị của chúng, bạn có thể sử dụng hàm array_diff_key() để xóa nhiều phần tử mảng không liên tiếp theo khóa của chúng. Hàm này được sử dụng để xóa tất cả các phần tử khỏi mảng đầu tiên có khóa cũng có trong mảng thứ hai. Bạn lưu ý giá trị ở mảng thứ 2 không quan trọng. Chỉ các phím cần khớp để loại bỏ các phần tử. Đây là một ví dụPHP 4Trong ví dụ trên, đầu ra của phép toán 0 đầu tiên có thể gây ngạc nhiên cho một số bạn. Lúc đầu, có vẻ như chúng ta đang chuyển các phím số của các phần tử để loại bỏ giống như chúng ta phải làm. Tuy nhiên, 0 biến mảng đơn giản mà chúng ta đã chuyển thành một mảng kết hợp với phần tử 0 tại chỉ mục (hoặc khóa) 0 và phần tử 3 tại chỉ mục (hoặc khóa) 1. Vì vậy, các khóa mà bạn đang chuyển để xóa thực sự trở thành 0 và 1 thay vì 0 và 3 như bạn dự định. Chúng tôi khắc phục tình trạng này bằng cách chuyển các giá trị không có thật cho các khóa 0 và 3 trong trường hợp thứ hai và nhận được đầu ra như mong đợi. Điều này không trở thành vấn đề trong phần trước vì chúng tôi khớp các khóa chứ không phải giá trịTóm tắt nhanhHãy tóm tắt lại mọi thứ mà chúng tôi đã trình bày trong hướng dẫn này
Hãy cho tôi biết nếu có bất cứ điều gì mà bạn muốn tôi làm rõ. Ngoài ra, rất hoan nghênh bạn bình luận nếu bạn biết các kỹ thuật khác để xóa một hoặc nhiều phần tử khỏi một mảng trong PHP Làm cách nào để xóa giá trị khớp khỏi mảng trong PHP?Cho một mảng, chúng ta phải xóa một phần tử khỏi mảng đó bằng cách sử dụng hàm array_diff() trong PHP.
Làm cách nào để xóa phần tử khỏi mảng trong PHP?Nếu bạn chỉ muốn xóa một phần tử mảng, bạn có thể sử dụng unset() hoặc \array_splice() . Nếu bạn biết giá trị và không biết khóa để xóa phần tử, bạn có thể sử dụng \array_search() để lấy khóa.
Làm cách nào để xóa các phần tử chung khỏi hai mảng trong PHP?Chỉ cần sử dụng array_diff hoặc array_intersect . Không nhận được nhiều dễ dàng hơn thế. Cũng xem xét mảng_diff_assoc nếu thứ tự của các giá trị trong hai mảng là quan trọng.
Làm cách nào để xóa phần tử cuối cùng của mảng trong PHP?Hàm array_pop() xóa phần tử cuối cùng của một mảng. |