Làm cách nào để xóa một phần tử khỏi một mảng kết hợp trong PHP?

Bạn có thể sử dụng hàm unset() để xóa phần tử khỏi mảng trong PHP bằng cách nhắm mục tiêu khóa đã cho. Do đó, chức năng đã nói yêu cầu một hoặc nhiều khóa của các phần tử mà bạn muốn xóa. Vui lòng xem cú pháp. bỏ đặt (mảng_phần tử, mảng_phần tử…)

Hơn nữa, xin lưu ý rằng mảng sẽ không được lập chỉ mục lại tự động sau khi sử dụng hàm unset()

– Ví dụ mã hóa

Giả sử bạn đang có một mảng các chủ đề được lập chỉ mục. Bây giờ, bạn muốn xóa chủ thể thứ tư và thứ sáu khỏi mảng. Vì vậy, bạn sẽ sử dụng hàm unset() bằng cách nhắm mục tiêu chỉ số thứ ba và thứ năm của mảng “đối tượng”. Do đó, các đối tượng trên các chỉ số đã cho sẽ bị xóa khỏi mảng ban đầu mà không sửa đổi các chỉ số còn lại

Giải pháp mã hóa dưới đây cho thấy cách PHP loại bỏ phần tử khỏi mảng trong khi vẫn giữ nguyên các khóa


// tạo một mảng các đối tượng được lập chỉ mục
$subjects = array(“Vật lý”,”Hóa học”, “Tiếng Anh”, “Toán học”, “Khoa học Máy tính”, “Kinh tế học”);
// sử dụng hàm unset
bỏ đặt($subjects[3], $subjects[5]);
// in ra mảng “subjects” đã sửa đổi
print_r($subjects);
// đầu ra. Mảng ( [0] => Vật lý [1] => Hóa học [2] => Tiếng Anh [4] => Khoa học Máy tính )
?>

Làm cách nào để xóa mục khỏi mảng và lập lại chỉ mục cho nó?

Bạn có muốn mảng của mình được lập chỉ mục lại tự động sau khi xóa một hoặc nhiều phần tử không? . Nhưng thật không may, hàm đã nói sẽ không thay đổi các khóa được đặt tên của một mảng kết hợp sau khi loại bỏ số lượng phần tử dự kiến

Chà, đây là cách bạn có thể sử dụng chức năng này. array_splice(mảng, độ lệch, độ dài).

– Thực thi Array_splice()

Hàm array_splice chấp nhận một mảng làm đối số đầu tiên của nó. Tiếp theo, hàm đã cho cho phép bạn xác định phần bù đại diện cho điểm bắt đầu xóa phần tử. Đối số đã nêu có thể là tích cực hoặc tiêu cực

Trong trường hợp offset dương, phần tử trên offset đã chỉ định sẽ bị xóa. Tuy nhiên, nếu bạn chuyển một phần bù âm thì quá trình đếm sẽ bắt đầu từ cuối mảng để PHP xóa mục khỏi mảng

Cuối cùng, tham số độ dài cho phép bạn chỉ định số lượng phần tử sẽ bị xóa khỏi phần bù đã chỉ định. Tham số đã cho cũng chấp nhận cả giá trị dương và âm để cuối cùng, quyết định hướng đếm số lượng phần tử dự kiến

Các ví dụ mã hóa về việc xóa một mục khỏi mảng

Thật vậy, các giải thích sẽ không đầy đủ nếu không có các ví dụ hoạt động, đặc biệt là khi viết mã. Vì vậy, ở đây bạn sẽ thấy một số tập lệnh ví dụ sẽ loại bỏ tất cả những nghi ngờ của bạn để bạn có thể PHP loại bỏ các phần tử khỏi mảng một cách dễ dàng

– Xóa một phần tử đơn lẻ khỏi mảng

Hãy tưởng tượng rằng bạn đã tạo một chương trình cho một cửa hàng nội thất. Chương trình đã nêu bao gồm một mảng đồ nội thất đại diện cho đồ nội thất có sẵn. Bây giờ, bạn muốn xóa “bảng” khỏi mảng vì số lượng hàng tương ứng đã được bán hết. Vì vậy, bạn sẽ sử dụng hàm array_splice() bằng cách nhắm mục tiêu số chỉ mục của “bảng” để PHP xóa khỏi mảng như được thấy trong đoạn mã bên dưới


// tạo một mảng nội thất được lập chỉ mục
$furniture = array(“Ghế”, “Giường”, “Bàn”, “Tủ quần áo”, “Tủ sách”, “Đi văng”);
// sử dụng hàm array_splice
array_splice($furniture, 2, 1);
// in mảng “đồ nội thất” đã sửa đổi
print_r($đồ nội thất);
// đầu ra. Mảng ( [0] => Ghế [1] => Giường [2] => Tủ quần áo [3] => Tủ sách [4] => Đi văng )
?>

– Loại bỏ các phần tử ở giữa khỏi mảng

Hãy thử nghĩ về việc có một mảng với tên màu ở giữa và tên động vật ở đầu và cuối. Bây giờ, bạn muốn xóa tên màu. Do đó, bạn sẽ triển khai hàm array_splice() bằng cách đặt giá trị bù thành một và độ dài thành âm một để xóa tên màu và nhận được mảng động vật mong muốn của bạn

Vui lòng xem qua ví dụ mã hóa bên dưới để PHP xóa khỏi mảng


// tạo một mảng động vật được lập chỉ mục
$animals = array(“Sư tử”, “đỏ”, “lam”, “xanh lục”, “cam”, “Hổ”);
// sử dụng hàm array_splice để xóa các phần tử ở giữa
array_splice($animals, 1, -1);
// in mảng "động vật" đã sửa đổi
print_r($animals);
// đầu ra. Mảng ( [0] => Sư tử [1] => Hổ )
?>

– Xóa khỏi mảng bằng cách chỉ định độ lệch âm

Ví dụ, bạn muốn PHP loại bỏ phần tử khỏi mảng trong khi đếm các phần tử từ cuối mảng. Trong trường hợp như vậy, bạn sẽ sử dụng hàm array_splice() bằng cách chuyển giá trị độ lệch âm được yêu cầu cùng với độ dài dự kiến ​​của các phần tử như ví dụ được chia sẻ tại đây


// tạo một mảng kết hợp các khóa học
$ khóa học = mảng (
“c1” => “Phát triển web”,
“c2” => “Thiết kế web”,
“c3” => “Phát triển ứng dụng”,
“c4” => “Viết nội dung”,
“c5” => “Thiết kế đồ họa”
);
// sử dụng hàm array_splice với phần bù âm
array_splice($courses, -3, 2);
// in mảng “khóa học” đã sửa đổi
print_r($cuốn sách);
// đầu ra. Mảng ( [c1] => Phát triển web [c2] => Thiết kế web [c5] => Thiết kế đồ họa)
?>

So sánh các giá trị của mảng

Bạn chỉ biết về các giá trị mà bạn muốn PHP xóa khỏi mảng? . Không giống như các hàm được thảo luận ở trên, hàm array_diff() hoạt động bằng cách so sánh các giá trị của mảng đầu tiên với một hoặc nhiều mảng. Cuối cùng, hàm tương tự loại bỏ các giá trị tương tự khỏi mảng đầu tiên trong khi trả về một mảng có giá trị không khớp với bất kỳ mảng nào khác được cung cấp

– Xóa mục khỏi mảng bằng cách sử dụng array_diff()

Bạn sẽ cần tạo một mảng các giá trị mà bạn muốn xóa. Tiếp theo, bạn sẽ chuyển mảng mới tạo làm đối số thứ hai cho hàm array_diff() trong khi đặt mảng chính của bạn làm đối số đầu tiên của cùng một mảng. Cuối cùng, bạn sẽ nhận được một bản sao của mảng chính với các khóa được giữ nguyên và không có giá trị không mong muốn

Vui lòng xem qua cú pháp này để hiểu rõ hơn. array_diff(main_array, không mong muốn_array…).

– Khối mã để xóa nhiều mục mảng theo giá trị

Hãy tưởng tượng rằng bạn có một mảng sản phẩm kết hợp với mã sản phẩm là khóa và tên sản phẩm là giá trị. Vì mã sản phẩm khó nhớ, bạn muốn PHP xóa mục khỏi mảng theo giá trị. Do đó, bạn sẽ tạo một mảng các sản phẩm không mong muốn và triển khai hàm array_diff() bằng cách chuyển mảng sản phẩm và mảng sản phẩm không mong muốn

Đây là một đoạn mã để chỉ cho bạn cách xóa mục PHP khỏi mảng theo giá trị như được giải thích trong ví dụ trên


//tạo mảng sản phẩm
$products = mảng(
“##abc672” => “Máy tính xách tay”,
“##yhg984” => “Bàn phím”,
“##mkh873” => “Chuột”,
“##hhk901” => “Tai nghe”,
“##mnk987” => “Loa”,
“##sdf459” => “CPU”
);
// tạo một mảng các sản phẩm không mong muốn
$unwanted = array(“CPU”,”Chuột”);
// sử dụng hàm array_diff
$ final = array_diff($products, $unwanted);
// in mảng sản phẩm kết quả
print_r($cuối cùng);
// đầu ra. Mảng ( [##abc672] => Máy tính xách tay [##yhg984] => Bàn phím [##hhk901] => Tai nghe [##mnk987] => Loa )
?>

Xóa phần tử bằng khóa

Bạn có thích ý tưởng tạo một mảng các phần tử mảng không cần thiết để loại bỏ chúng ngay lập tức không? . Tại đây, bạn sẽ sử dụng hàm array_diff_key() thay vì hàm array_diff(). Nhưng bạn sẽ rất vui khi biết rằng cả hai chức năng được đề cập đều hoạt động theo cùng một cách

Do đó, sự khác biệt duy nhất giữa hai chức năng là array_diff_key() ưu tiên các khóa hơn so với các giá trị

Bạn có thể xem cú pháp hàm tại đây. array_diff_key(main_array, không mong muốn_array…).

– Đoạn mã xóa phần tử bằng khóa

Ví dụ. chương trình của bạn bao gồm một mảng kết hợp các bài kiểm tra chứa các chủ đề làm khóa và ngày làm giá trị. Bây giờ, bạn muốn xóa thông tin chi tiết của các bài kiểm tra đã bị hủy. Do đó, bạn sẽ tạo một mảng kết hợp khác với chủ thể là khóa và giá trị mẫu. Tiếp theo, bạn sẽ thực thi hàm array_diff_key() để loại bỏ phần tử mảng PHP như được thấy trong mã ở đây


//tạo mảng đề thi
$exams = mảng(
“Tiếng Anh” => “22-Feb-2022”,
“Kinh tế” => “24-Feb-2022”,
“Xã hội học” => “26-Feb-2022”,
“Giáo dục” => “27-Feb-2022”,
“Vật lý” => “28-Feb-2022”,
);
// tạo một mảng các kỳ thi bị hủy
$postponed = array(“Kinh tế” => “xx”, “Vật lý” => “xx”);
// sử dụng hàm array_diff_key
$new = array_diff_key($exams, $postponed);
// in ra mảng kỳ thi mới
print_r($new);
// đầu ra. Array ( [Tiếng Anh] => 22-Feb-2022 [Sociology] => 26-Feb-2022 [Education] => 27-Feb-2022 )
?>

Phần kết luận

Nói tóm lại, bạn có thể PHP loại bỏ phần tử khỏi mảng bằng cách sử dụng nhiều hàm đủ linh hoạt. Bạn có thể sử dụng các hàm này theo cách này hay cách khác để PHP xóa khỏi mảng theo sở thích của bạn. Vì vậy, hãy xem lại các yêu cầu của bạn và sau đó đọc danh sách bên dưới để xác định chức năng tốt nhất mà bạn sẽ sử dụng hôm nay

  • Hàm unset() chấp nhận một hoặc nhiều phần tử mảng để PHP xóa khỏi mảng
  • Hàm array_splice() chấp nhận một mảng, một phần bù và độ dài cần thiết của các phần tử sẽ bị xóa trước khi thực hiện thao tác xóa
  • Hàm array_diff() so sánh hai hoặc nhiều mảng với PHP xóa mục khỏi mảng theo giá trị
  • Hàm array_diff_key() so sánh hai hoặc nhiều mảng với PHP xóa mục khỏi mảng theo khóa

Làm cách nào để xóa một phần tử khỏi một mảng kết hợp trong PHP?
Vui lòng thực thi các đoạn mã được chia sẻ ở trên với các giá trị khác nhau để rõ ràng hơn

5/5 - (16 phiếu)

Làm cách nào để xóa một phần tử khỏi một mảng kết hợp trong PHP?

Vị trí là tất cả

Vị trí là tất cả. Tài nguyên Go-To của bạn để Tìm hiểu & Xây dựng. CSS, JavaScript, HTML, PHP, C++ và MYSQL

Làm cách nào để xóa phần tử khỏi mảng trong PHP?

Hàm array_splice() loại bỏ các phần tử đã chọn khỏi một mảng và thay thế nó bằng các phần tử mới . Hàm cũng trả về một mảng với các phần tử đã bị xóa. Mẹo. Nếu hàm không loại bỏ bất kỳ phần tử nào (độ dài = 0) thì mảng được thay thế sẽ được chèn vào từ vị trí của tham số bắt đầu (Xem ví dụ 2).

Làm cách nào chúng ta có thể xóa bất kỳ phần tử nào khỏi một mảng trong PHP mà không để lại bất kỳ khoảng trống hoặc giá trị null nào)?

Trả lời. Sử dụng hàm PHP array_filter() . Hàm này thường lọc các giá trị của một mảng bằng hàm gọi lại.

Làm cách nào để lấy khóa và giá trị từ mảng kết hợp trong PHP?

Bạn có thể. .
Tạo một mảng mới, chứa các khóa. $newArray = array_keys($array); . .
Lấy khóa đầu tiên của mảng. đặt lại($mảng);
Lấy key tương ứng với giá trị "value". echo array_search('giá trị', $array);