codeigniter — получает нужный массив из функции, результатом которого является список массивов

Итак, у меня есть эта функция 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);

0

Решение

Если вы хотите вставить весь массив состояний в одну строку, вы можете получить это без foreach, как показано ниже: —

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

или если вы хотите один за другим, вы можете сделать это

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

Другие решения

Вы можете сделать это, добавив одну переменную массива.

$insertData = array();
$prefapi = $this->itpApi->getPrefectures();

foreach ($prefapi as $pref) {
$insertData[] = $pref["states"]["state"];
}

$this->db->insert('Prefecture',$insertData);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector