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

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

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

User avatar
birdkritsna
PHP Super Member
PHP Super Member
Posts: 225
Joined: 16/09/2019 9:57 am

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

Postby birdkritsna » 05/10/2019 11:00 am

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

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

Code: Select all

$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 ออกมาตามนี้

Code: Select all

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

 } 


ผลลัพธ์ที่ได้
1.jpg
1.jpg (295.23 KiB) Viewed 109 times


ทีนี้ผมอยากให้เรียกข้อมูลมาแสดง ตามภาษาที่เลือกในเว็บ ผมเลยกำหนดตัวแปรตามนี้

Code: Select all

$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 109 times


หน้าจอภาษาอังกฤษ
3.jpg
3.jpg (14.87 KiB) Viewed 109 times



ทำอย่างไรถึงจะสามารถดึงข้อมูลสกุลเงินมาทั้งหมดได้ครับ พอจะแนะนำวิธีได้ไหมครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21748
Joined: 22/09/2008 6:18 pm
Contact:

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

Postby mindphp » 06/10/2019 2:01 am

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


แต่ใน 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
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21748
Joined: 22/09/2008 6:18 pm
Contact:

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

Postby mindphp » 10/10/2019 6:04 am

ได้ลองตามที่แนะนำนี้หรือยังครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

User avatar
birdkritsna
PHP Super Member
PHP Super Member
Posts: 225
Joined: 16/09/2019 9:57 am

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

Postby birdkritsna » 10/10/2019 2:18 pm

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



โค๊ดตามรูปภาพครับ

Code: Select all

$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 มันขึ้นค่าเฉพาะตัวเดียวครับ
อันนี้โค๊ดที่จัดครับ

Code: Select all

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

Code: Select all

<?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 40 times


Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 27 guests