#php
#php
Вопрос:
Мне нужен этот результат sql-запроса (из файла журнала, надеюсь, он точный).
[ {"id":"1","text":"123"} ,{"id":"2","text":"456"} ] []
чтобы стать этим
{ 1: {"id":"1","text":"123"} ,2: {"id":"2","text":"456"} }
Я попробовал array_push и array_combine, но я новичок в PHP и пока безуспешно.
Короче говоря: я хочу добавить ключи (начиная с 1) к массиву объектов.
Одна попытка
$i = 1; while ($row = fetchRow($result)) { array_push($arr_result, $row); array_push($i, $arr_result); $i ; }
Но $arr_result выглядит как первый пример кода.
Комментарии:
1. Покажи нам, что ты пробовал
2. пробовать
echo json_decode($your_string,true);
3. Если использование встроенных функций не увенчалось успехом, как насчет того, чтобы попробовать старый добрый цикл ?
4.
$arr_result[$i] = $row;
5. @cid Спасибо — это сработало, но ключи теперь являются текстом, а не целыми числами, верно?
Ответ №1:
Вам не нужно $i
использовать $arr_result[]
, это создаст новое появление в вашем массиве.
while ($row = fetchRow($result)) { // this forces the array to start at 1 instead of 0 if thats what you really want if (count($arr_result) == 0){ $arr_result[1] = $row; } else { $arr_result[] = $row; } }
Или если ключ должен быть id
из строки
while ($row = fetchRow($result)) { $arr_result[$row['id']] = $row; }
Комментарии:
1. По некоторым причинам OP хочет, чтобы массив был проиндексирован на 1
2. @Cid Спасибо, почти уверен, что ОП на самом деле не знает, чего они на самом деле хотят, но вопросы указывают на то, что вы правы
3. @Cid Или, может быть, они хотели, чтобы это было ценностью
id