PHP เบื้องต้น > การทำงานกับ Array
ปฏิบัติการอื่นบน Array
มีฟังก์ชันที่น่าสนใจกับปฏิบัติการบน array รวมถึงวิธีการต่างกันในการรวม array หรือสร้าง array จาก 2 array อื่น
array_merge
ฟังก์ชัน array_merge ใช้ 2 array และส่งออก array เดียว ด้วยการเพิ่มเนื้อหาของ array ที่ 2 ต่อท้าย array แรก คีย์ของทั้ง 2 array ได้รับการรักษา ถ้าคีย์ข้อความของ array ที่ 2 เหมือนกับ array แรก ค่าของคีย์นั้นของ array แรกจะถูกเขียนทับ ถ้ารายการของ array ที่ 2 เป็นคีย์ตัวเลขเหมือนกับ array แรกจะกำหนดเป็นตัวเลขใหม่ให้และเพิ่มต่อท้าย array นั้น
<?php
// คีย์เหมือนกัน
$ary1 = array('bank' => 'SCB', 9500, 3000);
$ary2 = array('bank' => 'BBL', 3500, 4800, 3000);
$ary3 = array_merge($ary1, $ary2);
print_r($ary3);
echo "<br/>\n";
// คีย์ไม่เหมือนกัน
$ary1 = array('bank' => 'SCB', 9500, 3000);
$ary2 = array('note' => 'BBL', 3500, 4800, 3000);
$ary3 = array_merge($ary1, $ary2);
print_r($ary3);
?>
ผลลัพธ์
Array ([bank] => BBL [0] => 9500 [1] => 3000 [2] => 3500 [3] => 4800 [4] => 3000)
Array ([bank] => SCB [0] => 9500 [1] => 3000 [note] => BBL [2] => 3500 [3] => 4800 [4] => 3000)
array_combine
ฟังก์ชันนี้ใช้ 2 array คือ array ของคีย์และค่า แล้วส่งออก array ใหม่ด้วยคีย์ที่เป็นค่าจาก array แรกและค่าจาก array ที่ 2 ความล้มเหลวเกิดขึ้น (ส่งออก FALSE) เมื่อขนาดของ 2 array นี้ไม่เท่ากัน
<?php
$ary 1 = array('name', 'age', 'province', 'profession');
$ary 2 = array('Somsak', 2 9, 'bangkok', 'store keeper');
$ary 3 = array_combine($ary 1 , $ary 2) ;
print_r($ary 3) ;
?>
ผลลัพธ์
Array ([name] => Somsak [age] => 29 [province] => bangkok [profession] => store keeper)
array_intersect
ฟังก์ชันนี้ใช้ 2 array และส่งออกชุดค่าที่ปรากฎใน 2 array คีย์เดิมได้รับการรักษา ถ้าค่าเดียวกันแต่มีคีย์ต่างกัน จะใช้คีย์ของ array แรก
<?php
$ary 1 = array('bank' => 'SCB', 9500 , 3000) ;
$ary 2 = array('bank' => 'BBL', 3500 , 48 00 , 30 00) ;
$ary 3 = array_intersect($ary 1 , $ary 2) ;
print_r($ary 3) ;
?>
ผลลัพธ์
Array ([1] => 3000)
array_search
การค้นหาค่าภายใน array สามารถใช้ฟังก์ชัน array_search โดยฟังก์ชันนี้ใช้ค่าค้นหาและ array ที่ต้องการค้นหาเป็นอากิวเมนต์ ฟังก์ชันนี้ส่งออกคีย์ของ array ที่พบค่าหรือ FALSE ถ้าไม่พบค่า
<?php
$ary 1 = array( 64 , 80 , 100 , 223 , 600 , 5 , 87 , 415 , 910) ;
var_dump(array_search( 600 , $ary 1)) ;
var_dump($key 2 = array_search( 200 , $ary 1)) ;
?>
ผลลัพธ์
int(4) bool(false)
|