2015-06-25 3 views
0

EDIT: Я нашел свою ошибку благодаря комментариям об декодировании данных JSON.PHP: Как получить доступ к Ассоциативному массиву и решить "Array to String conversion notice"?

Я полный новичок в PHP и не смог найти подходящий метод для доступа к ассоциативному массиву.

У меня есть этот JSON данные:

[{"Id":"1"},{"Id":"2"},{"Id":"3"},{"Id":"4"},{"Id":"5"},{"Id":"6"},{"Id":"7"},{"Id":"8"}] 

Мне нужно стрелять другой MySQLi запрос в моем PHP код, который требует 1,2,3 ... из приведенных выше данных.

Реализация различных решений на этом сайте дает мне ошибку Array to String Conversion. Пожалуйста, помогите.

+0

вам нужно json-данные для ассоциативного массива или ?? – Ramki

+0

Читайте о 'json_decode()'. –

+0

у вас есть строка json, поэтому попробуйте преобразовать ее в обычный массив с помощью json_decode ($ string, TRUE); – SpongePablo

ответ

0

преобразования JSON данные в ассоциативный массив:

<?php 
$json = '[{"Id":"1"},{"Id":"2"},{"Id":"3"},{"Id":"4"},{"Id":"5"},{"Id":"6"},{"Id":"7"},{"Id":"8"}]'; 
$data = json_decode($json,true); 
echo "<pre>"; 
print_r($data); 
echo "<pre>"; 
?> 
1

Вы можете просто использовать array_column драм implode, как

$json = '[{"Id":"1"},{"Id":"2"},{"Id":"3"},{"Id":"4"},{"Id":"5"},{"Id":"6"},{"Id":"7"},{"Id":"8"}]'; 
$data = implode(',',array_column(json_decode($json,true),'Id')); 
echo $data;//1,2,3,4,5,6,7,8 

Объяснение:

  1. json_decode($json,true) превратит ваш json строку в массив
  2. array_column(json_decode($json,true),'Id') воли возвращает значения из одного столбца матрицы, которые были определены в COLUMN_KEYId т.е. здесь
  3. implode будет Join элементы массива с клеем строкой, т.е..