Получение значения из строки по индексу

У меня есть строка данных, отформатированная так:

[{"pr_a_w":"10","pr_a_we":"10","pr_c_w":"10","pr_c_we":"10"},{"pr_a_w":"20","pr_a_we":"20","pr_c_w":"20","pr_c_we":"20"},{"pr_a_w":"111","pr_a_we":"11","pr_c_w":"111","pr_c_we":"111"}]

Строка не имеет никаких индексов / чисел, как у обычного массива, и мне трудно извлечь отдельные значения, например, с обычным массивом я мог бы использовать:

$string[0]["pr_a_w"]

Чтобы получить первый экземпляр «pr_a_w», и я мог бы использовать:

$string[1]["pr_a_w"]

Чтобы получить второй экземпляр и т. Д.

Можно ли получить отдельные значения из этой строки в зависимости от их количества?

1

Решение

То, что у вас есть, является действительным JSON (сериализованный массив объектов), чтобы вы могли использовать json_decode чтобы преобразовать сериализованные данные в собственный массив PHP:

$array = json_decode('[{"pr_a_w":"10","pr_a_we":"10","pr_c_w":"10","pr_c_we":"10"},{"pr_a_w":"20","pr_a_we":"20","pr_c_w":"20","pr_c_we":"20"},{"pr_a_w":"111","pr_a_we":"11","pr_c_w":"111","pr_c_we":"111"}]',true);

$array затем позволит вам сделать именно то, что вы заявили, что вы хотели бы сделать выше.

$array[0]["pr_a_w"]; // will give you 10
$array[1]["pr_a_w"]; // will give you 10
2

Другие решения

Попробуйте вот так, нет необходимости доступа с индексом массива. Вы получите ошибку, если вы получите неверный индекс.

$json_arr= json_decode('[{"pr_a_w":"10","pr_a_we":"10","pr_c_w":"10","pr_c_we":"10"},{"pr_a_w":"20","pr_a_we":"20","pr_c_w":"20","pr_c_we":"20"},{"pr_a_w":"111","pr_a_we":"11","pr_c_w":"111","pr_c_we":"111"}]',true);

foreach($json_arr as $row){
echo $row['pr_a_w']."<br>";
}
1

По вопросам рекламы [email protected]