Posted by : caeruz วันพุธที่ 13 มีนาคม พ.ศ. 2556


สืบเนื่องจาก วันนี้มีโปรแกรมเมอร์น้องใหม่ภายในแผนกเดินเข้ามาสอบถาม เกี่ยวกับว่าจะหา ค่าที่แตกต่างกันภายใน array นั้น จะทำอย่างไรได้บ้าง มี function ของ PHP ที่จะสามารถจัดการกับค่าเหล่านี้ได้หรือไม่ ? ตัวผมเองก็ความจำสั้น จำอะไรก็ไม่ค่อยได้ แต่พอนึกวิธีได้ในขณะนั้นก็เลยจัดแจง coding วิธีบ้านๆ ตามประสาคนความรู้น้อยให้น้องดูซะเลย (ไอ้เราก็ลืมเปิดดู manual ของ php  --*)

ดูตัวอย่าง การหาค่าที่แตกต่างกันใน อาร์เรย์

วิธีที่ 1.
$array = array('apple', 'orange', 'pear', 'banana', 'apple', 'pear', 'kiwi', 'kiwi');

$array_duplicate         = array();
$array_unique            = array();
$array_duplicate_cnt   = array();

foreach($array as $val){
 if(++$array_duplicate_cnt[$val] > 1){
  $array_duplicate[] = $val;
 }else{
    if( count (array_keys($array, $val)) == 1 ){ 
         $array_unique[]     = $val;
     }
 }
}

print_r($array_unique);
print_r($array_duplicate);


ผลลัพธ์ที่ได้
1.  ค่าที่แตกต่างกันใน อาร์เรย์ ( unique array )
Array
(
    [0] => orange
    [1] => banana
)

2.  ค่าที่เหมือนกันใน อาร์เรย์ ( duplicate array )
Array
(
    [0] => apple
    [1] => pear
    [2] => kiwi
)
อ้าาา .. แต่สำหรับ php แล้วการหาค่าที่แตกต่างกันภายใน อาร์เรย์ นั้น php ก็มี function ให้ใช้งานอยู่แล้วด้วย นั้นก็คือ array_unique() ซึ่งผลลัพธ์ที่ได้นั้น ก็จะเหมือนกับผลลัพธ์ แรกนั่นเอง สำหรับ Array Functions ใน php นั้นก็มี function  ให้เลือกใช้งานกันอยู่ โดยสามารถดูข้อมูลเพิ่มเติมได้ที่  php manual









{ 1 ความคิดเห็น... read them below or add one }

Categories

Popular Post

ขับเคลื่อนโดย Blogger.

- Copyright © Stimulus ♥ Hooked on Developer -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan - Yahoo bot last visit powered by MyPagerank.Net -

สะพานบอทฟรี - ติดgoogleอย่างง่าย ด้วยสะพานบอท