คำสั่งสำหรับลบค่าออกจากอะเรย์นั้นมีอยู่ 2-3 ตัว

1. array_pop

คำสั่งนี้ใช้สำหรับเอาอะเรย์ตัวสุดท้ายออกจากอะเรย์ ลองดูตัวอย่างการใช้งาน

$stack = array("orange", "banana", "apple", "raspberry");
array_pop($stack);
 
print_r($stack);


ค่าของตัวแปร stack จะเป็นดังนี้

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

ในกรณีที่ต้องการเอาค่าที่ pop ออกมาไปใช้งานต่อ ก็สามารถทำได้ โดยเอาตัวแปรเข้าไปรับมาตอนเรียกใช้ฟังก์ชั่น

$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
 
var_dump($fruit);

2. array_shift

array_shift สำหรับลบค่าตัวแรกออกจากอะเรย์ ดูตัวอย่าง

$stack = array("orange", "banana", "apple", "raspberry");
array_shift($stack);
 
print_r($stack);

ผลลัพธ์ของตัวอย่าง

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

ถ้าเราต้องการเอาค่าที่ shift ออกมาไปใช้งานต่อ ก็ทำได้เช่นกัน โดยเอาตัวแปรเข้าไปรับฟังก์ชั่น

$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
 
var_dump($fruit);

ทีนี้มาถึงสิ่งที่ผมต้องการจะนำเสนอจริงๆในวันนี้ คือลบค่าที่ต้องการออกจากอะเรย์ ซึ่งไม่รู้ว่ามันอยู่อันดับที่เท่าใดในอะเรย์ อันนี้มันไม่มีฟังก์ชั่นตรงๆ แต่ประยุกต์เอาจากฟังก์ชั่นที่มีอยู่ ได้แบบง่ายๆ

array array_diff ( array $array1 , array $array2 [, array $... ] )

array_diff มันจะคืนค่าค่าที่มีอยู่ใน array1 แต่ไม่มีอยู่ใน array2 คิดให้มันง่ายๆก็คือเอาค่าใน array2 ไปลบออกจาก array1 สิ่งที่เหลือก็คือค่าที่เราไม่ต้องการถูกลบทิ้งหมด

$array1 = array(1,2,3,4,5);
$array2 = array(2,4);
$result = array_diff($array1, $array2);
 
print_r($result);

ผลลัพธ์

Array
(
    [0] => 1
    [1] => 3
    [2] => 5
)

ถ้าเรามีค่าเพียงค่าเดียวที่ต้องการลบออก ก็จับโยนมันให้เป็นอะเรย์ แล้วทำตามวิธีการข้างบน