เรื่องน่ารู้เกี่ยวกับแอเร์ยของ PHP (Array PHP)
ในบทความนี้ผมจะพูดถึงฟังก์ชั่นพื้นฐานต่างๆเกี่ยวกับแอเรย์ของ PHP
พื้นฐานเกี่ยวกับแอเรย์
วิธีสร้างแอเรย์ของ PHP มี 2 วิธี คือใช้ array() และ [] โดยเป็นการระบุแบบ Key และ Value โดยที่ Key สามารถเป็นตัวเลขหรือสตริงค์ก็ได้
$array = array(1 => 'One', -2 => 'Two', 'สาม' => 3, 0.1 => '0.1', 1 => 'หนึ่ง');
/*
array (
1 => 'หนึ่ง',
-2 => 'Two',
'สาม' => 3,
0 => '0.1',
)
*/
$array = [1 => 'One', -2 => 'Two', 'สาม' => 3, 0.1 => '0.1', 1 => 'หนึ่ง'];
/*
array (
1 => 'หนึ่ง',
-2 => 'Two',
'สาม' => 3,
0 => '0.1',
)
*/
$array = ['One', 'Two', 'Three'];
/*
array (
0 => 'One',
1 => 'Two',
2 => 'Three',
)
*/
ข้อสังเกต
- Key สามารถระบุเป็นตัวเลขติดลบได้ แต่ไม่สามารถระบุตัวเลขทศนิยมได้
- ในกรณีที่มี Key ซ้ำ จะใช้ตำแหน่งของคีย์ตัวแรกสุด แต่ Value เปลี่ยนเป็นของตัวสุดท้าย
- หากไม่ระบุ Key เราจะได้ Key เป็นตัวเลข เริ่มต้นตั้งแต่ 0
ฟังก์ชั่นพื้นฐานเกี่ยวกับแอเรย์ของ PHP
- array_combine รวมสองแอแรย์เข้าด้วยกันโดยพารามิเตอร์แรกจะเป็น Key และพารามเตอร์ตัวที่สองจะเป็น Value
- array_keys คืนค่ารายการ Key ทั้งหมดของแอเรย์
- array_values คืนค่า Value ทั้งหมดของแอเรย์
- array_flip กลับ Key เป็น Value และ Value เป็น Key
$keys = ['one', '0.1', 0.1, '100', 100, '200'];
$values = ['หนึ่ง', '0.1', 'ศูนย์จุดหนึ่ง', 100, '100', '200'];
$array = array_combine($keys, $values);
var_export($array);
/*
array (
'one' => 'หนึ่ง',
'0.1' => 'ศูนย์จุดหนึ่ง',
100 => '100',
200 => '200',
)
*/
var_export(array_keys($array));
/*
array (
0 => 'one',
1 => '0.1',
2 => 100,
3 => 200,
)
*/
var_export(array_values($array));
/*
array (
0 => 'หนึ่ง',
1 => 'ศูนย์จุดหนึ่ง',
2 => '100',
3 => '200',
)
*/
var_export(array_flip($array));
/*
array (
'หนึ่ง' => 'one',
'ศูนย์จุดหนึ่ง' => '0.1',
100 => 100,
200 => 200,
)
*/
in_array ฟังก์ชั่นตรวจสอบว่ามี Value ที่ต้องการอยู่ในแอเรย์หรือไม่ คืนค่า true ถ้ามี หรือ false ถ้าไม่มี
array_key_exists ฟังก์ชั่นตรวจสอบว่ามี Key ที่ต้องการอยู่ในแอเรย์หรือไม่ คืนค่า true ถ้ามี หรือ false ถ้าไม่มี ฟังก์ชั่นนี้สามารถใช้ isset แทนได้
array_search ฟังก์ชั่นค้นหา Value ในแอเรย์ คืนค่า Key ถ้าไม่เจอคืนค่า false มีพารามิเตอร์ตัวที่ 3 ถ้าระบุเป็น true จะค้นหา Value ที่เป็นประเภทเดียวกันด้วย
$array = array (
'one' => 'หนึ่ง',
'0.1' => 'ศูนย์จุดหนึ่ง',
100 => '100',
200 => '200',
);
in_array('one', $array);
// false
in_array('หนึ่ง', $array);
// true
array_key_exists('one', $array);
// true
isset($array['one']);
// true
array_search(100, $array);
// 100
array_search(100, $array, true);
// false