Cách xóa một giá trị khỏi mảng trong PHP

Trong bài viết này, bạn sẽ học cách xóa một phần tử khỏi mảng bằng PHP. Chúng tôi sẽ đề cập đến các phương pháp khác nhau để thực hiện trên các loại mảng khác nhau với nhiều ví dụ

Trước khi tiếp tục, hãy tìm hiểu cách thức hoạt động của ba chức năng mà chúng ta sẽ cần sau này

Hàm unset()

Hàm unset() là một hàm có sẵn trong PHP được sử dụng để bỏ đặt/hủy một biến đã cho hoặc một tập hợp các biến.

cú pháp

bỏ đặt (biến,. );

Thông số

Hàm yêu cầu ít nhất một biến làm tham số, nhưng bạn có thể chuyển nhiều biến mà bạn muốn bỏ đặt, được phân tách bằng dấu phẩy

Hàm unset() không có giá trị trả về

Sau khi một biến không được đặt, chương trình sẽ hoạt động như thể biến đó chưa từng tồn tại và không còn nhận ra nó nữa. Nếu bạn bỏ đặt biến rồi thử sử dụng lại biến đó trong chương trình của mình, hệ thống sẽ báo lỗi biến không xác định

Nếu hàm unset() được gọi bên trong một hàm do người dùng định nghĩa, thì nó chỉ hủy đặt các biến cục bộ. Nếu bạn muốn hủy đặt một biến toàn cục bên trong hàm (biến được khởi tạo bên ngoài nó), thì bạn phải sử dụng mảng $GLOBALS để làm như vậy.

Hàm array_splice()

Hàm array_splice() được tích hợp sẵn trong PHP và loại bỏ các phần tử đã chọn khỏi một mảng và thay thế chúng bằng các phần tử mới.

cú pháp

array_splice(mảng1, bắt đầu, độ dài, mảng2)

Thông số

Tham sốYêu cầuMô tảmảng1Yêu cầuChỉ định mảng mà bạn muốn loại bỏ hoặc thay thế các phần tử. startRequiredĐây là một giá trị số chỉ định nơi hàm sẽ bắt đầu loại bỏ các phần tử. Giá trị số của phần tử đầu tiên là 0. Nếu được đặt thành âm, hàm sẽ bắt đầu cách xa phần tử cuối cùng. lengthOptionalĐây là một giá trị số xác định có bao nhiêu phần tử sẽ bị xóa khỏi mảng. Nếu được đặt thành âm, hàm sẽ dừng cách xa phần tử cuối cùng. Nếu nó không được đặt, hàm sẽ loại bỏ tất cả các phần tử, bắt đầu từ vị trí được đặt bởi tham số bắt đầu. array2OptionalĐây là một mảng với các phần tử được chèn vào mảng ban đầu. Nó có thể là một chuỗi nếu nó chỉ là một phần tử

Hàm array_values()

The array_values() là một hàm PHP dựng sẵn giúp lập chỉ mục lại một mảng và trả về mảng đó bằng các phím số, bắt đầu từ 0 .

cú pháp

mảng_giá_trị(mảng)

Mảng là một tham số bắt buộc chỉ định mảng sẽ được làm việc trên

Cách xóa phần tử khỏi mảng trong PHP

Có một số phương pháp loại bỏ một phần tử được chỉ định khỏi một mảng trong PHP. Ở đây, sẽ đề cập đến hai phương pháp như được nêu dưới đây

  1. Sử dụng hàm unset()
  2. Sử dụng hàm array_splice()

Phương pháp 1. Sử dụng hàm unset()

Hàm unset() có thể được sử dụng để hủy toàn bộ mảng trong một biến hoặc một phần tử được chỉ định trong mảng bằng cách sử dụng chỉ mục hoặc khóa của nó

Khác với các biến thông thường khi chúng ta chỉ truyền tên biến cho hàm, để xóa một phần tử cụ thể khỏi mảng và giữ nguyên các phần tử khác của nó, chúng ta phải đưa chỉ số phần tử hoặc khóa vào biến mảng khi truyền nó vào unset.

ví dụ 1

Xóa một phần tử khỏi một mảng được lập chỉ mục bằng số dựa trên chỉ mục của nó

";
print_r ($fruits);
echo "
"; unset($fruits[1]); echo "The array after deleting an element
"; print_r ($fruits);

đầu ra

Mảng trước khi xóa một phần tử
Mảng (    [0] => Quả táo
[1] => Xoài
[2] => Quả bơ
[3] => Chuối
[4] => Dưa hấu
[5] => Đam mê
)
Mảng sau khi xóa một phần tử
Mảng (    [0] => Quả táo
[2] => Quả bơ
[3] => Chuối
[4] => Dưa hấu
[5] => Đam mê
)

Các chỉ số mảng bắt đầu từ 0. Vì vậy, phần tử mảng có chỉ số 1 thực sự là phần tử thứ hai trong mảng. Chúng ta đã chuyển tên mảng có chỉ số 1 cho hàm unset(). Từ đầu ra, bạn có thể thấy phần tử thứ hai (Mango) đã bị xóa khỏi mảng

Một điều bạn có thể lưu ý từ ví dụ trên là sau khi xóa phần tử có chỉ số 1, hàm giữ nguyên các chỉ mục khác, tức là chỉ mục một bị thiếu với mảng kết quả bắt đầu bằng chỉ số 0 theo sau là 2. Hàm unset() không lập chỉ mục lại mảng sau khi xóa một phần tử khỏi mảng được lập chỉ mục bằng số

Để khắc phục điều đó và lập chỉ mục lại mảng kết quả, tất cả những gì bạn cần làm là chuyển mảng cho hàm array_values()

ví dụ 2

Lập chỉ mục lại một mảng số bằng hàm array_values() sau khi xóa một phần tử bằng hàm unset()

đầu ra

Mảng trước khi xóa một phần tử
Mảng (    [0] => Quả táo
[1] => HP
[2] => Dell
[3] => Lenovo
)

Như bạn có thể thấy từ đầu ra, chúng tôi đã xóa "Toshiba" chiếm chỉ số 2 của mảng. Sau khi chuyển mảng đến hàm array_values(), nó đã được lập chỉ mục lại để chuyển "Dell" từ chỉ mục 3 sang 2 và "Lenovo" từ chỉ mục 4 sang 3

ví dụ 3

Xóa một phần tử khỏi một mảng kết hợp dựa trên khóa của nó

 "John Doe", "email" => "[email protected]", "age" => 28);
echo "The array before deleting an element 
"; print_r ($person); echo "
"; unset($person["age"]); echo "The array after deleting an element
"; print_r ($person);

đầu ra

Mảng trước khi xóa một phần tử
Mảng (    [name] => John Doe
[email] => johndoe@gmail. com
[tuổi] => 28
)
Mảng sau khi xóa một phần tử
Mảng (    [name] => John Doe
[email] => johndoe@gmail. com
)

Như bạn có thể thấy phần tử tuổi đã bị xóa khỏi mảng

Nếu bạn biết một giá trị phần tử mảng và không biết khóa/chỉ mục của nó nhưng bạn muốn xóa nó, trước tiên bạn có thể làm như vậy bằng cách sử dụng array_search() function to get its key, then use that key to delete it.

Bạn chuyển hai tham số cho hàm array_search() trong đó tham số đầu tiên là giá trị có khóa bạn muốn biết và tham số thứ hai là mảng thực tế mà bạn đang tìm kiếm giá trị từ đó. Hàm trả về khóa/chỉ mục của phần tử mảng với giá trị đó

đầu ra

Chìa khóa cho Dưa Hấu là. 4

Thí dụ

";
print_r ($laptops);
echo "
"; unset($laptops[array_search("Dell", $laptops)]); echo "The array after deleting an element
"; print_r ($laptops);

đầu ra

Mảng trước khi xóa một phần tử
Mảng (    [0] => Quả táo
[1] => HP
[2] => Toshiba
[3] => Dell
[4] => Lenovo
)
Mảng sau khi xóa một phần tử
Mảng (    [0] => Quả táo
[1] => HP
[2] => Toshiba
[4] => Lenovo
)

Từ ví dụ trên, chúng ta đã sử dụng hàm array_search() với giá trị "Dell" để tìm chỉ mục của phần tử mảng khớp với nó, sau đó sử dụng chỉ mục đó để xóa phần tử bằng hàm unset(). Bạn có thể từ đầu ra nó đã hoạt động vì "Dell" đã bị xóa khỏi mảng

Phương pháp 2. Sử dụng hàm array_splice()

Hàm này loại bỏ một phạm vi phần tử mảng đã chỉ định và tự động lập chỉ mục lại mảng theo số

Trái ngược với hàm unset() giữ nguyên các chỉ số mảng, bạn có thể thấy từ ví dụ trên, array_splice() đã lập chỉ mục lại các phần tử mảng sau khi xóa

Làm cách nào để xóa giá trị cụ thể trong mảng PHP?

Sử dụng hàm unset() . Hàm unset() dùng để xóa phần tử khỏi mảng. Hàm unset được sử dụng để hủy bất kỳ biến nào khác và sử dụng tương tự để xóa bất kỳ phần tử nào của một mảng. Lệnh bỏ đặt này lấy khóa mảng làm đầu vào và xóa phần tử đó khỏi mảng.

Làm cách nào để xóa giá trị đầu tiên khỏi mảng trong PHP?

Để xóa phần tử hoặc giá trị đầu tiên khỏi một mảng, sử dụng hàm array_shift() . Hàm này cũng trả về phần tử bị loại bỏ của mảng và trả về NULL nếu mảng 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.