Page 1 of 1

ข้อมูลที่ทำการ loop ไม่เข้าไปเก็บใน array ครับ

Posted: 18/11/2019 8:16 pm
by bankjittapol
ข้อมูลที่ทำการ loop ไม่เข้าไปเก็บใน array ครับ
คือทำการ loop เอา ชื่อจังหวัดออกมา เพื่อไปเก็บใน array แล้ว จะ return ค่าไปที่ field list ใน xml ครับ

Code: Select all

class JFormFieldselpro extends JFormFieldList
{
  protected $type = 'selpro';
  protected function getOptions()
  {
    $lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag();
    $url = 'https://data.tmd.go.th/api/WeatherForecast7Days/V1/?type=json';
    $data_url = file_get_contents($url);
    $all =  json_decode($data_url, true);
    $all_provinces = $all['Provinces'];

    foreach ($all_provinces as $key => $provinces) {
      $ProvinceName = ($lang_tag=='en-GB') ? $provinces['ProvinceNameEng'] : $provinces['ProvinceNameTh'];

      echo $ProvinceName;

      $provinces = array(
        array('value'=> $ProvinceName, 'text' => $ProvinceName )
      );
    }



    return array_merge(parent::getOptions(), $provinces);
  }
}

Re: ข้อมูลที่ทำการ loop ไม่เข้าไปเก็บใน array ครับ

Posted: 18/11/2019 8:30 pm
by mindphp
ตัวอย่าง Loop สร้าง ตัวแปล array
https://www.mindphp.com/%E0%B8%9A%E0%B8 ... array.html

Re: ข้อมูลที่ทำการ loop ไม่เข้าไปเก็บใน array ครับ

Posted: 19/11/2019 4:23 pm
by bankjittapol
mindphp wrote: 18/11/2019 8:30 pm ตัวอย่าง Loop สร้าง ตัวแปล array
https://www.mindphp.com/%E0%B8%9A%E0%B8 ... array.html
ได้แล้วครับ โดยเปลี่ยนเป็น

Code: Select all

class JFormFieldselpro extends JFormFieldList
{
  protected $type = 'selpro';
  protected function getOptions()
  {
    $lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag();
    $url = 'https://data.tmd.go.th/api/WeatherForecast7Days/V1/?type=json';
    $data_url = file_get_contents($url);
    $all =  json_decode($data_url, true);
    $all_provinces = $all['Provinces'];
      $provinces = array();
       for ($row=0; $row <= count($all_provinces)-1; $row++) {
         $ProvinceName = ($lang_tag=='en-GB') ? $all_provinces[$row]['ProvinceNameEng'] : $all_provinces[$row]['ProvinceNameTh'];
          array_push($provinces,$ProvinceName);
       }
    return array_merge(parent::getOptions(), $provinces);
  }
}