วันพุธที่ 18 กรกฎาคม พ.ศ. 2555

การเปลี่ยนข้อมูลใน Array ให้เป็นตัวแปรในภาษา PHP

ปรกติแล้ว Array ก็จะประกอบด้วย index และ Value ยกตัวอย่างเลยแล้วกันจะได้เห็นภาพชัดเจน

$newArray= array('id' => '100',
'name' => 'ikungolf',
'site' => 'http://ikungolf.blogspot.com',
);
เวลาที่เราจะเรียกใช้งานก็ สามารถเรียกผ่าน Index ได้เลยเช่น
echo $newArray['id'];
echo $newArray['name'];
echo $newArray['site'];
หากว่าเราเรียกใช้ Array ในไฟล์เดียวกันคงไม่ใช่เรื่องยุ่งยากเท่าไร แต่หากต้องมีการส่งค่าไปที่อื่นแล้ว อาจจะส่งผลให้เกิดความยุ่งยากในการใช้งาน

ถ้าหากเราเปลี่ยน Index ของ Array ให้เป็นตัวแปรล่ะครับ($id, $name, $site) จะทำให้การใช้งานตัวแปรต่างๆ สะดวกขึ้นหรือไม่ ตัวอย่างที่เห็นได้ชัดเจน คือการส่งค่าที่ได้จาก Model ไปยัง View ของ Codeigniter Framework



Adding Dynamic Data to the View

Data is passed from the controller to the view by way of an array or an object in the second parameter of the view loading function. Here is an example using an array:
$data = array(
               'title' => 'My Title',
               'heading' => 'My Heading',
               'message' => 'My Message'
          );

$this->load->view('blogview', $data);
Now open your view file and change the text to variables that correspond to the array keys in your data:
Then load the page at the URL you've been using and you should see the variables replaced.

Creating Loops

The data array you pass to your view files is not limited to simple variables. You can pass multi dimensional arrays, which can be looped to generate multiple rows. For example, if you pull data from your database it will typically be in the form of a multi-dimensional array.
Here's a simple example. Add this to your controller:
Now open your view file and create a loop:

Credit :: http://codeigniter.com/user_guide/general/views.html

จากตัวอย่างข้างบนจะเห็นได้ว่า Index "title" Array $data เมื่อถุกส่งไปยัง View จะเปลี่ยนเป็น ตัวแปรที่ชื่อว่า $title

*** ที่เขียนมาตั้งยาวประเด็นจริงๆ มันอยู่แค่ตรงนี้ล่ะครับ
วิธีการเปลี่ยน Array to Variable on PHP
เราจะเปลี่ยน array $newArray['id'], $newArray['name'], $newArray['site'] ให้ไปเป็น $id, $name, $site
$newArray= array('id' => '100',
'name' => 'ikungolf',
'site' => 'http://ikungolf.blogspot.com',
);

วิธีที่ 1
foreach($newArray as $key=>$row){
            $$key = $row;
}
วิธีที่ 2
foreach($newArray as $key=>$row){
          ${$key} = $row;
}

เท่านี้เราก็สามารถเรียกตัวแปรในรูปแบบ $id, $name, $site

output of
echo $id."<br/>";
echo $name."<br/>";
echo $site."<br/>";
result
100
ikungolf
http://ikungolf.blogspot.com