【问题标题】:codeigniter - Get desired array from function which result is a list of arraycodeigniter - 从函数中获取所需的数组,结果是数组列表
【发布时间】:2017-08-16 02:48:16
【问题描述】:

所以我有这个功能getList。我想要完成的是:

  1. 获取函数stateApi,其结果是一个数组列表。(这个函数是一个API。)
  2. 仅从数组列表中获取所需的数组。
  3. 保存到数据库。

stateApi 函数的结果是:

Array
(
[ack] => Array
    (
        [ackstatus] => OK
        [ackreason] => Array
            (
            )

    )

[type] => 01
[states] => Array
    (
        [statecount] => 3
        [state] => Array
            (
                [0] => Array
                    (
                        [@attributes] => Array
                            (
                                [cd] => 01
                                [name] => America
                                [desc] => USA
                            )

                    )

                [1] => Array
                    (
                        [@attributes] => Array
                            (
                                [cd] => 02
                                [name] => China
                                [desc] => CHN
                            )

                    )

                [2] => Array
                    (
                        [@attributes] => Array
                            (
                                [cd] => 03
                                [name] => Russia
                                [kana] => RSA
                            )

                    )

            )
    )
)

我只想得到state 数组的内容。 例如:

[0] => Array
(
     [@attributes] => Array
     (
          [cd] => 01
          [name] => America
          [desc] => USA
     )
 )
[1] => Array
(
     [@attributes] => Array
     (
          [cd] => 02
          [name] => China
          [desc] => CHN
     )
 )
[2] => Array
(
     [@attributes] => Array
     (
          [cd] => 03
          [name] => Russia
          [kana] => RSA
     )
 )

这是我能做的代码;

//TODO:
//call api
$prefapi = $this->itpApi->getPrefectures();

foreach ($prefapi as $pref) {
    $data = $pref["states"]["state"];
}
//Save DB
$this->db->insert('Prefecture',$data);

【问题讨论】:

    标签: php arrays codeigniter


    【解决方案1】:

    如果你想在一行中插入所有状态数组,你可以在没有 foreach 的情况下得到它,如下所示:-

     $prefapi['states']['state'];
    

    或者如果你想要一个一个,你可以这样做

     foreach($prefapi['states']['state'] as $value)
        {
           then your insert query
         }
    

    【讨论】:

      【解决方案2】:

      您可以通过添加一个数组变量来做到这一点。

      $insertData = array(); 
      $prefapi = $this->itpApi->getPrefectures();
      
      foreach ($prefapi as $pref) {
          $insertData[] = $pref["states"]["state"];
      }
      
      $this->db->insert('Prefecture',$insertData);
      

      【讨论】:

        猜你喜欢
        • 2021-07-24
        • 2013-07-09
        • 2016-08-26
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 1970-01-01
        • 1970-01-01
        • 2016-12-08
        相关资源
        最近更新 更多