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