Обучение
Всегда хорошая идея, чтобы начать с документации:
Что касается учебников, попробуйте интерактивный учебник над на Codecademy: https://www.codecademy.com/learn/php
- В блоке 4 есть руководство по массивам
- Узел 11 имеет урок по расширенным массивам.
Ваш код
Что касается вашего кода, обратите внимание на следующее, которые я покажу вам вашу структуру массива и как получить доступ к каждому элементу. Возможно, это сделает вас более ясными.
Итак, скажем, ваш массив называется $myArray
, см., Как получить доступ к каждой части через комментарии. Имейте в виду, что это не php-код, я просто показываю вам, как обращаться к различным элементам массива.
$myArray = Array
(
// $myArray['meta']
[meta] => Array (
// $myArray['meta']['total_record_count']
[total_record_count] => 1
// $myArray['meta']['total_pages']
[total_pages] => 1
// $myArray['meta']['current_page']
[current_page] => 1
// $myArray['meta']['per_page']
[per_page] => 1
)
// $myArray['companies']
[companies] => Array (
// $myArray['companies'][0]
[0] => Array (
// $myArray['companies'][0]['id']
[id] => 291869
// $myArray['companies'][0]['url']
[url] => https://api.mattermark.com/companies/291869
// $myArray['companies'][0]['company_name']
[company_name] => gohenry.co.uk
// $myArray['companies'][0]['domain']
[domain] => gohenry.co.uk
)
)
// $myArray['total_companies']
[total_companies] => 1
// $myArray['page']
[page] => 1
// $myArray['per_page']
[per_page] => 1
)
Что касается вашего для каждого цикла
foreach($jsonObj as $item)
{
echo $item['total_companies'];
}
Что цикл Еогеасп делает цикл по каждому первому уровню массива $jsonObj
, так что будет включать в себя:
- мета
- Фирмы
- всего_компаний
- страницы
- per_page
Затем в фигурных скобках {}
цикла Еогеаспа вы можете обратиться к каждому уровню переменной $item
.
Так что, в зависимости от того, чего вы хотите достичь, вам нужно, возможно, изменить свой код, что вы пытаетесь сделать, поскольку мне это не совсем понятно.
Что касается кода внутри цикла:
echo $item['total_companies'];
Это не будет работать, потому что вы пытаетесь получить доступ к массиву с индексом total_companies
в пределах первого уровня $jsonObj
массива, который не делает существовать. Для того, чтобы работать ваш массив должен выглядеть следующим образом:
$jsonObj = array (
'0' => array (// this is what is reference to as $item
'total_companies' => 'some value'
)
)
Что вы хотите сделать это:
foreach($jsonObj as $item)
{
echo $jsonObj['total_companies'];
}
Что касается окончательного фрагмента кода:
echo $item[0]['total_companies'];
Ответил это выше. Доступ это как $jsonObj['total_companies'];
echo $item['companies'][0]['id'];
Если вы хотите перебрать компании попробовать это:
foreach($jsonObj['companies'] as $item)
{
// now item will represent each iterable element in $jsonObj['companies]
// so we could do this:
echo $item['id'];
}
Я надеюсь, что все помогает! Если вы не понимаете, сделайте комментарий, и я обновлю свой ответ.
[[email protected]] (https://secure.php.net/manual/en/language.types.array.php) –
Есть ли у вас шансы на поиск вложенных foreach? – Chay22
Вы хотите вывести каждое «окончательное» значение последовательно? – RomanPerekhrest