Q สอบถามเรื่องการกำหนดตัวแปร ให้สามารถแสดงเป็นภาษาไทย-อังกฤษครับ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
birdkritsna
PHP Super Member
PHP Super Member
โพสต์: 234
ลงทะเบียนเมื่อ: 16/09/2019 9:57 am

Q สอบถามเรื่องการกำหนดตัวแปร ให้สามารถแสดงเป็นภาษาไทย-อังกฤษครับ

โพสต์ที่ยังไม่ได้อ่าน โดย birdkritsna »

คือผมดึงค่าข้อมูลมาจาก api ที่หนึ่งมา แล้วข้อมูลที่ผมจะใช้นั้น จะมีเป็น ภาษาไทยและอังกฤษ

โดยมีโค๊ด ตามนี้

โค้ด: เลือกทั้งหมด

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://apigw1.bot.or.th/bot/public/Stat-ExchangeRate/v2/DAILY_AVG_EXG_RATE/"
. "?start_period=2019-09-27&"
. "end_period=2019-09-28&",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"x-ibm-client-id: 41a7650e-697b-4c11-968b-b982bac08687"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
// echo print_r($err);
$response = json_decode(curl_exec($curl),1);
$data2 = $response["result"]["data"]["data_detail"];
curl_close($curl);
ทีนี้ผม จะเอาข้อมูลแค่ ชื่อภาษาไทยและอังกฤษ โดย echo ออกมาตามนี้

โค้ด: เลือกทั้งหมด

foreach($data2 as $v) { 
 echo $v['currency_name_th']." ".$v['currency_name_eng'].'<br>';

 }  
ผลลัพธ์ที่ได้
1.jpg
1.jpg (295.23 KiB) Viewed 814 times
ทีนี้ผมอยากให้เรียกข้อมูลมาแสดง ตามภาษาที่เลือกในเว็บ ผมเลยกำหนดตัวแปรตามนี้

โค้ด: เลือกทั้งหมด

$arr_rates = array('th' => $v['currency_name_th'], 'en' => $v['currency_name_eng']);
 $lang_rates = $arr_rates[$lang];
แต่ผลลัพธ์ที่ได้ มันเป็นค่าที่อยู่ท้ายสุด ออกมาแค่อันเดียวครับ
หน้าภาษาไทย
2.jpg
2.jpg (14.48 KiB) Viewed 814 times
หน้าจอภาษาอังกฤษ
3.jpg
3.jpg (14.87 KiB) Viewed 814 times

ทำอย่างไรถึงจะสามารถดึงข้อมูลสกุลเงินมาทั้งหมดได้ครับ พอจะแนะนำวิธีได้ไหมครับ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Q สอบถามเรื่องการกำหนดตัวแปร ให้สามารถแสดงเป็นภาษาไทย-อังกฤษครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

โค้ดที่ลงมาไม่มีข้อมูลตามภาพที่เอามาแสดง


แต่ใน api ถ้าได้ตามภาพ คือดึงข้อมูล สกุลเงินทั้งหมดมาได้แล้ว
เรามาจัดรูปแบบ ในการแสดงค่าของมันออกมา
โดยทำเป็น array แบบสองมิติ กำหนด key และ value ของแต่ละมิติ ตามรูปแบบที่ต้องการ

ตัวอย่าง
viewtopic.php?f=72&t=16899
viewtopic.php?f=72&t=23504

VDO array 2 มิติ
https://www.mindphp.com/forums/viewtopic ... 72&t=21554

และตัวอย่าง อื่นๆ ในเว็บนี้อีกมาก เพียงค้นคำว่า
site:mindphp.com array มิติ
ใน Google หรือค้นในเว็บนี้
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Q สอบถามเรื่องการกำหนดตัวแปร ให้สามารถแสดงเป็นภาษาไทย-อังกฤษครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ได้ลองตามที่แนะนำนี้หรือยังครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
birdkritsna
PHP Super Member
PHP Super Member
โพสต์: 234
ลงทะเบียนเมื่อ: 16/09/2019 9:57 am

Re: Q สอบถามเรื่องการกำหนดตัวแปร ให้สามารถแสดงเป็นภาษาไทย-อังกฤษครับ

โพสต์ที่ยังไม่ได้อ่าน โดย birdkritsna »

mindphp เขียน:โค้ดที่ลงมาไม่มีข้อมูลตามภาพที่เอามาแสดง
โค๊ดตามรูปภาพครับ

โค้ด: เลือกทั้งหมด

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://apigw1.bot.or.th/bot/public/Stat-ExchangeRate/v2/DAILY_AVG_EXG_RATE/"
. "?start_period=2019-09-27&"
. "end_period=2019-09-28&",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"x-ibm-client-id: 41a7650e-697b-4c11-968b-b982bac08687"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
// echo print_r($err);
$response = json_decode(curl_exec($curl),1);
$data2 = $response["result"]["data"]["data_detail"];
 foreach($data2 as $k => $v) { 
       echo  $v['currency_name_th'];
        echo $v['currency_name_eng']. "<br>";
         }
 exit();
ขอบคุณครับผม ผมได้ลองศึกษาและลองทำแล้วครับ แต่พอเวลา นำไปใช้กับ listbox มันขึ้นค่าเฉพาะตัวเดียวครับ
อันนี้โค๊ดที่จัดครับ

โค้ด: เลือกทั้งหมด

foreach($data2 as $k => $v) { 
     $arr_rates = array('th' => $v['currency_name_th'], 'en' => $v['currency_name_eng']);
      foreach($arr_rates as $detail => $value)
               $details = $arr_rates[$lang];
       
         }
โค๊ดที่ใช้กับ listbox

โค้ด: เลือกทั้งหมด

<?php
                                                    foreach($data2 as $v) { ?>
                                                      <option value="<?php echo number_format($v['selling'], 2);?>" ><?php echo $details ?></option>
                                                     
                                                  <?php
                                                    } ?>
333.jpg
333.jpg (43.31 KiB) Viewed 745 times
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 58