⊗ppSpOtAC 83 of 83 menu

การเพิ่มประสิทธิภาพการแปลงเป็นอาเรย์ใน PHP

ไม่จำเป็นต้องแบ่งสตริงเป็นอาเรย์เสมอไป เพื่อที่จะทำอะไรบางอย่างกับมัน

มาดูตัวอย่างกัน ในตัวอย่างต่อไปนี้ ผู้เขียนโค้ดกำลังตรวจสอบว่า มีเลข 3 ในสตริงหรือไม่:

<?php $str = '12345'; $arr = explode('', $str); // แบ่งเป็นอาเรย์ if (in_array(3, $arr)) { echo 'มี'; } else { echo 'ไม่มี'; } ?>

ผู้เขียนทำดีแล้ว - ใช้ฟังก์ชันในตัวของ PHP แทนที่จะเขียนวิธีแก้ปัญหาชั่วคราวของตัวเอง

แต่โค้ดก็ยังไม่เหมาะสมที่สุด: ที่นี่ไม่ จำเป็นต้องแบ่งสตริงเป็นอาเรย์ เพราะมี ฟังก์ชันสำเร็จรูป strpos ที่ทำหน้าที่ ค้นหาในสตริงอยู่แล้ว:

<?php $str = '12345'; if (strpos(str, 3) !== false) { echo 'มี'; } else { echo 'ไม่มี'; } ?>

ทำไมการแบ่งเป็นอาเรย์ที่นี่ถึงไม่ดี? เพราะ ประการแรก การแบ่งเป็นอาเรย์ใช้ทรัพยากร ของหน่วยประมวลผล ประการที่สอง อาเรย์ที่ได้ มาจะใช้พื้นที่ในหน่วยความจำแรม (และมันจะใช้พื้นที่มากกว่าพื้นที่ ที่สตริงต้นฉบับใช้)

คำสอน: อย่าแบ่งสตริงเป็นอาเรย์ ถ้า มีวิธีที่ไม่ต้องทำเช่นนั้น

ในโค้ดต่อไปนี้ นักโปรแกรมมิ่งคนหนึ่งกำลังกลับลำดับ อักขระในสตริง ให้คุณเพิ่มประสิทธิภาพ วิธีแก้ปัญหาของโปรแกรมเมอร์คนนี้:

<?php $str = '123345'; $rev = implode('', array_reverse(explode('', $str))); echo $rev; // จะได้ '54321' ?>

ในโค้ดต่อไปนี้ มีคนกำลังหาจำนวนคำ ในข้อความ ให้คุณเพิ่มประสิทธิภาพวิธีแก้ปัญหาของโปรแกรมเมอร์คนนี้:

<?php $str = 'aaa bbb ccc'; // สตริงยาวบางอัน echo count(explode(' ', $str)); ?>
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ