Итак, у меня есть эта функция getList
, То, что я пытаюсь сделать, это:
stateApi
результатом которого является список массивов (эта функция является API).Результат 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);
Если вы хотите вставить весь массив состояний в одну строку, вы можете получить это без foreach, как показано ниже: —
$prefapi['states']['state'];
или если вы хотите один за другим, вы можете сделать это
foreach($prefapi['states']['state'] as $value)
{
then your insert query
}
Вы можете сделать это, добавив одну переменную массива.
$insertData = array();
$prefapi = $this->itpApi->getPrefectures();
foreach ($prefapi as $pref) {
$insertData[] = $pref["states"]["state"];
}
$this->db->insert('Prefecture',$insertData);