Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

วิธีการเรียก PHP ของวัตถุในอาร์เรย์โดยใช้ array_map?


ใน PHP เวอร์ชัน 5.3 เมธอดของอ็อบเจ็กต์ในอาร์เรย์สามารถเรียกได้โดยใช้โค้ดด้านล่าง -

$props = array_map(function($obj){ return $obj->getProp(); }, $objs);

ซึ่งจะช้ากว่าลูป 'for' เนื่องจากเรียกใช้ฟังก์ชันเดียวสำหรับทุกองค์ประกอบ -

function map($obj) {
   return $obj->getProperty();
}
$props = array_map('map', $objs);

หรือสำหรับเวอร์ชัน PHP ก่อน 5.3 สามารถใช้โค้ดด้านล่างได้ -

function map($obj) {
   return $obj-> getProperty ();
}
$props = array_map('map', $objs);
}

ฟังก์ชัน getProperty จะถูกเรียกใช้บนอ็อบเจ็กต์ทั้งหมด และคุณสมบัติเฉพาะจะปรากฏขึ้น ทางเลือก -

function encode_data($val){
   if(is_array($val)){
      return $val = array_map('encode_data', $val);
   } else {
      return utf8_encode($val);
   } 
}
$value = array_map('encode_data', $value);
print_r($value);

ข้อมูลที่เข้ารหัส utf8 ของค่าจะปรากฏขึ้น