ฟังก์ชัน array_splice
ฟังก์ชัน array_splice ตัดและส่งคืน
ส่วนหนึ่งของอาเรย์ ในขณะที่ส่วนที่ถูกตัด
จะหายไปจากอาเรย์ สามารถแทรกองค์ประกอบใหม่
แทนที่ส่วนที่ถูกตัดได้
พารามิเตอร์แรกระบุอาเรย์ที่ต้องการตัด พารามิเตอร์ที่สองระบุว่าให้เริ่มตัดจากองค์ประกอบใด และพารามิเตอร์ที่สาม - ให้ตัดองค์ประกอบกี่ตัว พารามิเตอร์ที่สาม สามารถเป็นค่าลบได้ - ในกรณีนี้ การนับจะเริ่มจากท้ายสุด (-1 คือองค์ประกอบสุดท้าย, -2 คือรองสุดท้าย และอื่นๆ) สามารถ ไม่ระบุพารามิเตอร์ที่สามเลยก็ได้ - ในกรณีนี้ จะตัดอาเรย์ไปจนถึงส่วนท้ายสุด
ในพารามิเตอร์สุดท้ายซึ่งเป็นตัวเลือกสามารถ กำหนดอาเรย์ขององค์ประกอบที่จะ แทรกเข้าไปแทนที่องค์ประกอบที่ถูกลบได้
ไวยากรณ์
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
ตัวอย่าง
มาลองตัดองค์ประกอบตั้งแต่ตัวแรก (มี
หมายเลข 0) จำนวน 3 ตัว:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
['a', 'b', 'c']
ในขณะที่อาเรย์ $arr จะกลายเป็นดังนี้:
['d', 'e']
ตัวอย่าง
มาลองตัดองค์ประกอบตั้งแต่ตัวที่สอง (มี
หมายเลข 1) จำนวน 3 ตัว:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
['b', 'c', 'd']
ในขณะที่อาเรย์ $arr จะกลายเป็นดังนี้:
['a', 'e']
ตัวอย่าง
มาลองตัดองค์ประกอบตั้งแต่ตัวที่สอง (มี หมายเลข 1) ไปจนถึงท้ายอาเรย์ ในการนี้เรา ไม่ต้องเขียนพารามิเตอร์ที่สาม:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
['b', 'c', 'd', 'e']
ในขณะที่อาเรย์ $arr จะกลายเป็นดังนี้:
['a']
ตัวอย่าง
มาลองตัดองค์ประกอบตั้งแต่ตัวรองสุดท้าย
จำนวน 2 ตัว ในการนี้เราตั้งค่า
พารามิเตอร์ที่สองเป็น -2 (ตำแหน่งของ
องค์ประกอบรองสุดท้าย):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
['d', 'e']
ในขณะที่อาเรย์ $arr จะกลายเป็นดังนี้:
['a', 'b', 'c']
ตัวอย่าง
มาลองตัดองค์ประกอบตั้งแต่ตัวที่สอง (มี
หมายเลข 1) จำนวน 2 ตัว และแทรก
องค์ประกอบ 1, 2, 3 เข้าไปแทนที่:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
['b', 'c']
ในขณะที่อาเรย์ $arr จะกลายเป็นดังนี้:
['a', 1, 2, 3, 'd', 'e']
ตัวอย่าง
มาลองไม่ตัดอะไรเลย
แต่แทรกองค์ประกอบ 1, 2,
3 เริ่มจากตำแหน่ง 1 ในการนี้
ตั้งค่าพารามิเตอร์ที่สามเป็นศูนย์:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
[]
ในขณะที่อาเรย์ $arr จะกลายเป็นดังนี้:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
ดูเพิ่มเติม
-
ฟังก์ชัน
array_slice,
ซึ่งตัดส่วนหนึ่งของอาเรย์โดยไม่เปลี่ยนแปลงอาเรย์ต้นฉบับ