Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224

Обращение к многомерному массиву

08.08.2017, 03:34. Показов 2284. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, подскажите, может я чего не вижу, есть двухмерный ассоциативный массив формата json
$arrays =
JSON
1
2
array(2) { [113]=> array(8) { ["id"]=> int(113) ["name"]=> string(14) "Pol" ["last_name"]=> string(16) "loker" ["age"]=> bool(true) ["rQW"]=> bool(true) ["FFS"]=> int(18863) ["DDD"]=> int(15200) ["4RF"]=> int(10) } 
           [108]=> array(8) { ["id"]=> int(108) ["name"]=> string(41) "John" ["last_name"]=> string(29) "crack" ["age"]=> bool(true) ["rQW"]=> bool(true) ["FFS"]=> int(52155) ["DDD"]=> int(20400) ["4RF"]=> int(650) } }
PHP
1
2
3
4
5
6
7
8
for ($i=1; $i <= count($arrays); $i++)
{
    $id = $arrays[$i]['id'];
    $name = $arrays[$i]['name'];
    $last_name = $arrays[$i]['last_name '];
    $age = $arrays[$i]['age '];
    $rQW = $arrays[$i]['rQW '];
}
В итоге ничего не выводится

Добавлено через 1 час 0 минут
Вот такой вот json как пропарсить?
JSON
1
2
{"2215":{"id":2215,"name":"Pol","last_name":"loker","rQW":true,"aSD":true,"zXC":18,"rWQ":100,"zVS":10},
"4215":{"id":4215,"name":"John","last_name":"Frank","rQW":false,"aSD":true,"zXC":189,"rWQ":5,"zVS":9}}
Правильно ли? есть к 1 элементу.
PHP
1
        echo $arrays[2215]['name'];
Выводит PolPol
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.08.2017, 03:34
Ответы с готовыми решениями:

проход по многомерному массиву
Есть двухмерный массив $mass = 1; $mass = 1; $mass = 1; $mass = 1; $mass = 1; $mass = 1; $mass = 0;

Поиск по многомерному массиву
Всем привет! В прошлый раз (https://www.cyberforum.ru/php-beginners/thread2401143.html) я делала поиск пути по обычному массиву. Сейчас...

Поиск по многомерному массиву
Делаю для своего сайта форму бронирования, уже сделал все остался последний штрих, разобрать многомерный массив полученный из БД, бъюсь 3...

14
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
08.08.2017, 03:56
Цитата Сообщение от Андрей_74 Посмотреть сообщение
В итоге ничего не выводится
а Вы тут ничего и не выводите )
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
08.08.2017, 03:58  [ТС]
Igsit, только foreach?
0
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
08.08.2017, 03:59
Цитата Сообщение от Андрей_74 Посмотреть сообщение
Вот такой вот json как пропарсить?
что конкретно Вы хотите получить?
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
08.08.2017, 04:02  [ТС]
Igsit, какой нибудь отдельный элемент любого массива, для подготовки к отправке в бд

Добавлено через 1 минуту
Igsit, что бы построчно каждый массив я смог занести в бд, проще говоря
0
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
08.08.2017, 04:06
PHP
1
2
3
4
5
6
$json_string = '{"2215":{"id":2215,"name":"Pol","last_name":"loker","rQW":true,"aSD":true,"zXC":18,"rWQ":100,"zVS":10},
"4215":{"id":4215,"name":"John","last_name":"Frank","rQW":false,"aSD":true,"zXC":189,"rWQ":5,"zVS":9}}';
 
$array = json_decode($json_string , true);
 
echo $array['2215']['name'];
Добавлено через 2 минуты
Цитата Сообщение от Андрей_74 Посмотреть сообщение
что бы построчно каждый массив я смог занести в бд, проще говоря
наверное Вы имели ввиду пробежать по элементам массива? тогда так
PHP
1
2
3
4
5
6
7
8
$json_string = '{"2215":{"id":2215,"name":"Pol","last_name":"loker","rQW":true,"aSD":true,"zXC":18,"rWQ":100,"zVS":10},
"4215":{"id":4215,"name":"John","last_name":"Frank","rQW":false,"aSD":true,"zXC":189,"rWQ":5,"zVS":9}}';
 
$array = json_decode($json_string , true);
 
foreach ($array as $value) {
    echo $value['name'];
}
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
08.08.2017, 04:07  [ТС]
Igsit, я уже декодировал массив
0
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
08.08.2017, 04:08
Цитата Сообщение от Андрей_74 Посмотреть сообщение
я уже декодировал массив
PHP
1
2
3
foreach ($array as $value) {
    echo $value['name'];
}
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
08.08.2017, 04:09  [ТС]
Igsit, не пробежаться, я получить конкретное одно любое значение, подобие
PHP
1
$arrays[$i]['id'];
что то того
0
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
08.08.2017, 04:11
Цитата Сообщение от Андрей_74 Посмотреть сообщение
получить конкретное одно любое значение
я же писал уже, что не так?
PHP
1
echo $array['2215']['name'];
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
08.08.2017, 04:32  [ТС]
Igsit, Недопустимое смещение строки 'name'

Добавлено через 42 секунды
Цитата Сообщение от Igsit Посмотреть сообщение
PHP
1
2
foreach ($array as $value) {
* * echo $value['name'];
}
про это

Добавлено через 5 минут
Цитата Сообщение от Igsit Посмотреть сообщение
я же писал уже, что не так?
PHP
1
echo $array['2215']['name'];
PHP
1
 
1. Так дублируется значение элемента массива
2. Предопределён массив.

Добавлено через 2 минуты
Со вторым можно справиться, посчитав кол-во элементов первого массива

Добавлено через 7 минут
Igsit,
Цитата Сообщение от Igsit Посмотреть сообщение
PHP
1
2
3
4
5
$json_string = '{"2215":{"id":2215,"name":"Pol","last_name":"loker","rQW":true,"aSD":true,"zXC":18,"rWQ":100,"zVS":10},
"4215":{"id":4215,"name":"John","last_name":"Frank","rQW":false,"aSD":true,"zXC":189,"rWQ":5,"zVS":9}}';
$array = json_decode($json_string , true);
foreach ($array as $value) {
* * echo $value['name'];
}
Таким способом, цикл читает только один вложенный массив, строчку (заносит её в бд)
0
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
08.08.2017, 05:04
Цитата Сообщение от Андрей_74 Посмотреть сообщение
Недопустимое смещение строки 'name'
значит массив у Вас не такой как Вы показали

Цитата Сообщение от Андрей_74 Посмотреть сообщение
Так дублируется значение элемента массива
ничего тут не дублируется

Цитата Сообщение от Андрей_74 Посмотреть сообщение
Предопределён массив.
вообще не понял о чём это

Цитата Сообщение от Андрей_74 Посмотреть сообщение
Таким способом, цикл читает только один вложенный массив, строчку
так я и просил у Вас "что именно Вы хотите получить в итоге?" Вы сказали сначала пробежать, я показал как, потом сказали надо любое ОДНО значение получить, я показал как, а теперь опять не так, напишите как именно Вам надо?
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
08.08.2017, 10:55  [ТС]
Цитата Сообщение от Igsit Посмотреть сообщение
напишите как именно Вам надо?
Что бы данные массива можно было записать в БД как стоку с (id имя фамилия и прочее поля), всеми что имеет главный массив.
Неизвестно сколько будет вложенных массивов (строк для БД).
Если использовать такую конструкцию:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$main_array = json_decode($content, true);
            foreach($content as $value)
            {
                    try{
                        $id = $value['id'];
                        $name= $value['name'];
                        $last_name = $value['last_name '];
                        $age = $value['age '];
                        $rQW= $value['rQW'];
 
                    } catch(PDOEception $e) {
                        echo '{"Error:": {"text": '.$e->getMessage().'}';
                    }
Запись в БД
PHP
1
2
3
4
5
6
7
                    $st_add = $db->prepare($sql);
                    $st_add->bindParam(':id', $id);
                    $st_add->bindParam(':name', $name);
                    $st_add->bindParam(':last_name', $last_name);
                    $st_add->bindParam(':age', $age);
                    $st_add->bindParam(':rQW', $rQW);
                    $st_add->execute();
То записывается один вложенный массив (строчка), а нужно что бы неограниченно (сколько вложенных массивов => столько строк в БД)

Добавлено через 6 минут
$content =
JSON
1
2
string(364) "{"14129":{"id":14129,"name":"Pol","last_name":"loker","age":true,"rQW":true,"id_another":18863},
              "14130":{"id":14130,"name":"John","last_name":"backets","age":true,"rQW":true,"id_another":17762}}"
0
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
08.08.2017, 14:55
Цитата Сообщение от Андрей_74 Посмотреть сообщение
То записывается один вложенный массив (строчка)
покажите весь этот код, если Вы пробегаете массив и в цикле добавляете записи в базу то должны записаться все записи из массива. Выложите весь код с запросом и добавлением в базу, а также с получением Вашей строки, пока я ничего не понял
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
08.08.2017, 15:09  [ТС]
Igsit,
Цитата Сообщение от Igsit Посмотреть сообщение
Выложите весь код с запросом
запрос я беру через cURL и формирую response в json

Добавлено через 4 минуты
Цитата Сообщение от Igsit Посмотреть сообщение
Выложите весь код с запросом и добавлением в базу, а также с получением Вашей строки, пока я ничего не понял
сейчас напишу код
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2017, 15:09
Помогаю со студенческими работами здесь

Обращение к массиву
Добрый вечер. Из подключенной БД создаю массив, а затем работаю с ним. В таблице БД 2 столбца - id и name. $dis = &quot;SELECT * FROM...

Обращение к массиву backtrace
Корректно ли ображение к конкретному элементу напряму через конкретные указатели?: $errinfo = debug_backtrace(); echo $errinfo; ...

Обращение к внутреннему массиву
Добрый день. Подскажите, пожалуйста. Есть некий массив из 4 значений. Каждое значение представляет собой еще один массив из 2...

Присвоение значений многомерному массиву
Здравствуйте. Подскажите пожалуйста, как организовать присвоение многомерному массиву значений. Для одномерного массива можно сделать...

Как присвоить значения многомерному массиву?
result=eval($('#data').attr('result'));// Загрузка массивов со страницы. // Обработка созданного параметра: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru