В настоящее время я работаю над проектом, где последователи пользователя приведены мне в массиве, который выглядит как один здесь: http://pastebin.com/304iPm4LКак доступ к вложенным Массивам: Невозможно использовать объект типа StdClass как массив
Массив:
object(stdClass)#2 (3) {
["pagination"]=> object(stdClass)#3 (2)
{
["next_url"]=> string(146) "DATA"
["next_cursor"]=> string(13) "DATA"
}
["meta"]=> object(stdClass)#4 (1)
{
["code"]=> int(200)
}
["data"]=> array(9)
{
[0]=> object(stdClass)#5 (4)
{
["username"]=> string(7) "twurked"
["profile_picture"]=> string(106) "https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xaf1/t51.2885-19/11055444_697242820403478_108851570_a.jpg"
["id"]=> string(9) "307611076"
["full_name"]=> string(20) "#twurked For Reposts"
}
[1]=> object(stdClass)#6 (4)
{
["username"]=> string(12) "itsmarziapie"
["profile_picture"]=> string(107) "https://igcdn-photos-b-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-19/10735354_634448103338889_1219780551_a.jpg"
["id"]=> string(9) "415505158"
["full_name"]=> string(15) "Marzia Bisognin"
}
[2]=> object(stdClass)#7 (4)
{
["username"]=> string(11) "briankgrubb"
["profile_picture"]=> string(107) "https://igcdn-photos-d-a.akamaihd.net/hphotos-ak-xpa1/t51.2885-19/10518270_1508565329429347_713909002_a.jpg"
["id"]=> string(8) "28307611"
["full_name"]=> string(11) "Brian Grubb"
}
[3]=> object(stdClass)#8 (4)
{
["username"]=> string(16) "redbulladventure"
["profile_picture"]=> string(106) "https://igcdn-photos-d-a.akamaihd.net/hphotos-ak-xaf1/t51.2885-19/11007825_728249480627075_348216069_a.jpg"
["id"]=> string(10) "1721797894"
["full_name"]=> string(18) "Red Bull Adventure"
}
}
}
То, что я пытаюсь сделать, это принять значение username
каждого из этих пользователей и вывести его на экран.
Итак, что я придумал, было то, что я мог легко (или так я думал ...) прокручивать свои результаты и выводить только значение username
во всех вложенных массивах.
Я использовал этот код:
$i = 1;
while ($i <= 10) {
$instagram->getUserFollows('self',10)->data[$i]["username"];
echo "<br/>";
$i++;
}
$instagram->getUserFollows('self',10)
массив, является то, что вы видели в Pastebin. Посмотрев на мои вложенные массивы, мне показалось, что мне нужен номер, а затем ["username"]
, чтобы получить доступ к каждому имени пользователя.
В теории, $instagram->getUserFollows('self',10)->data["1"]["username"];
должен вывести itsmarziapie
Однако, когда я запускал код выше, я получил это:
Cannot use object of type stdClass as array
Что означает эта ошибка, и почему я не могу цикл из мои username
данные на экран ???
На данный момент я занимаюсь поиском и устранением неисправностей около 2,5 часов, и теперь я смотрю на вас, ребята, для руководства. Я знаю, что есть много вопросов об одной и той же ошибке, но ни один из них не включал вложенные массивы, подобные этой, поэтому я немного потерялся.
Спасибо за помощь, чтобы указать меня в правильном направлении :)
Извините за очевидным, но это означает, что именно он говорит: вы не можете использовать объект введите 'stdClass' как массив. Используйте 'var_dump()' для проверки ** фактического ** содержимого ваших переменных. – zerkms
@zerkms Я это понимаю, но для меня решение ошибки было очень запутанным. Я понятия не имел, как получить доступ к данным массива в вложенных массивах. Я понял проблему, но недостаточно хорошо, чтобы найти решение самостоятельно. – pattyd
Ну, если вы использовали 'var_dump', вы бы знали, что они не * вложенные массивы *. Но угадание действительно смешнее. – zerkms