#php #arrays #multidimensional-array
#php #массивы #многомерный-массив
Вопрос:
Я извлекаю данные из API. Это происходит следующим образом:
int(621)
array(3) {
["self"]=>array(1) {["href"]=>string(28) "/inventory?pgsiz=100amp;pgnum=1"
}
["next"]=>array(1) {["href"]=>string(28) "/inventory?pgsiz=100amp;pgnum=2"
}
["item"]=>array(1) {["href"]=>string(0) ""
}
}
array(1) {
["item"]=>
array(100) {
[0]=>
array(25) {
["receiverId"]=>int(1623456)
["receivedDate"]=>string(22) "2020-07-27T07:37:43.73"
["receiveItemId"]=>int(132576)
["customerIdentifier"]=>array(2) { ...
Все, что я делаю, чтобы попытаться получить доступ к данным array(100)
, завершается неудачей. Я думаю, это потому, что я пытаюсь перемещаться, как будто это многомерный массив, но на самом деле первый элемент в этих данных вообще не является массивом, это INT .
Как я могу пропустить int(621)
, а также array(3)
доступ item
к and ?
Редактировать (print_r)::
Array
(
[totalResults] => 621
[_links] => Array
(
[self] => Array
(
[href] => /inventory?pgsiz=1000amp;pgnum=1
)
[item] => Array
(
[href] =>
)
)
[_embedded] => Array
(
[item] => Array
(
[0] => Array
(
[receiverId] => 1623456
[receivedDate] => 2020-07-27T07:37:43.73
[receiveItemId] => 1623456
[customerIdentifier] => Array ...
Комментарии:
1. Можете ли вы показать нам простой
print_r($YOUR_ARRAY)
вывод2. Может быть проще просто показать нам ответ от API без каких-либо проблем
3. Кажется, что это обычный массив с числовой индексацией. Таким образом, целое число должно быть at
[0]
, следующий массив at[1]
и так далее.4. @RiggsFolly при добавлении print_r($YOUR_ARRAY) я обнаружил foreach(), который выполнялся как часть кода, подключенного к API. Я удалил это и запустил
print_r
right, поскольку он поступает из API.5. @El_Vanja, я тоже так думал, но я продолжаю получать
Undefined offset: 0
при попытке увидеть, что представляет собой первый элемент массива в качестве простого теста.
Ответ №1:
Я предполагаю, что вы хотите просмотреть все 100 случаев, поэтому что-то вроде этого поможет вам начать
foreach( $arr['__embedded']['item'] as $occ ) {
echo $occ['receiverId'];
}
Обратите внимание,
[customerIdentifier]
что, по-видимому, также есть другой массив, но вы не показали, что происходит после этого, так что все это ваше для изучения
Комментарии:
1. Я попробовал это, и я получаю:
Undefined index: _embeded
.2. Я понял, спасибо. В вашем примере пропущена буква «d» во встроенном. Я принимаю ваш ответ!
3. Упс, моя ошибка. Исправлено