Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP ลบ Element จาก Array ด้วย unset()

ตัวอย่างโค้ด

<?php
$my_array = ["Joe", "Ben", "Mary", "Barun", "Sona", "Mona"];
unset($my_array[4]);
echo "After deleting the element, the array is\n";
print_r($my_array);
?>

ผลลัพธ์

After deleting the element, the array is
Array
(
    [0] => Joe
    [1] => Ben
    [2] => Mary
    [3] => Barun
    [5] => Mona
)

คำอธิบาย

  • Array Index เริ่มที่ 0 → Index 4 คือ Element ตัวที่ 5 ("Sona")
  • unset() ลบ Element และ Key ออกจาก Array
  • Key ไม่ Re-index อัตโนมัติ - Index 4 หายไป Index 5 ยังคงเป็น 5

การ Re-index Array

ถ้าต้องการ Key เรียงต่อเนื่อง ใช้ array_values():

<?php
$my_array = ["Joe", "Ben", "Mary", "Barun", "Sona", "Mona"];
unset($my_array[4]);
$my_array = array_values($my_array);  // Re-index: 0,1,2,3,4
print_r($my_array);
?>

ผลลัพธ์

Array
(
    [0] => Joe
    [1] => Ben
    [2] => Mary
    [3] => Barun
    [4] => Mona
)

ฟังก์ชันลบ Array อื่นๆ

Functionคำอธิบาย
unset($arr[$key])ลบโดย Key (ไม่ Re-index)
array_splice($arr, $offset, $length)ลบโดย Offset/Length (Re-index 自動)
array_shift($arr)ลบ Element แรก (Re-index)
array_pop($arr)ลบ Element สุดท้าย
array_diff($arr, $values)ลบโดย Value (เก็บ Keys)