PHP Array การสลับตำแหน่ง Array ระหว่าง key => value แบบไม่ต้องพิมพ์ใหม่ ด้วย array_flip(), var_export()

โดย SONGCHAI SAETERN
จากรูปด้านล่างนี้ จะเห็นว่ามี key ที่ชื่อว่า image/jpeg สองบรรทัด ทำให้ value ด้านหลังทับกันเหลือเพียงแค่ jpg ตัวสุดท้าย แต่ jpeg บรรทัดก่อนหน้านั้นหายไป


เนื่องจากการกำหนดชื่อ key ของอาร์เรย์ ต้องไม่เป็นชื่อซ้ำกัน ดังนั้น จึงจำเป็นที่จะต้องสลับตำแหน่งระหว่าง key และ value กลับด้านกัน ซึ่งฟังก์ชั่นที่ใช้ก็คือ array_flip()



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


 และพระเอกของงานนี้ก็คือ var_export() ซึ่งทุกท่านอาจจะเคยเห็นผ่านตากับฟังก์ชั่น var_dump() มาบ้าง ซึ่งเป็นการแสดงข้อมูลออกมาเหมือนกับ print_r() แต่มีรายละเอียดที่มากกว่า

แต่ var_export() จะแตกต่างออกไป เพราะสามารถแสดงข้อมูลอาร์เรย์ออกมาในรูปแบบของซอร์สโค้ด PHP เพื่อคัดลอกนำไปใช้งานต่อได้เลย


ทีนี้ก็ถึงเวลาที่เราต้องเขียนโค้ดเพื่อดูผลลัพธ์กันแล้ว

1. สลับค่าในตัวแปร $this->file_allow ด้วย array_flip()
        $new_array = array_flip($this->file_allow);


2. แสดงข้อมูลในรูปแบบใหม่หลังจากที่สลับด้านเรียบร้อย ด้วยฟังก์ชั่น var_export()
        var_export($new_array);

3. เปิดหน้าเว็บที่แสดงผลลัพธ์ สังเกตว่าโค้ดจะออกมากองรวมกันไม่สวยงาม


4. เขียนโค้ดแทรกแท็ก HTML เพื่อจัดระเบียบให้สวยงามด้วย <pre></pre>
        echo '<pre>';
        var_export($new_array);
        echo '</pre>';

5. เปิดหน้าเว็บดูผลลัพธ์อีกครั้ง

6. ทำการคัดลอกซอร์สโค้ดที่ได้ไปใช้งานได้ทันที