Foreach для сложного массива

0

Я застрял в этом. У меня есть 0 идей для этого. У меня есть эта строка в json:

$json = json_encode(
array(
    'error'=> 'false',
        'tasks' => array(
            1 => array(
                'id' => 4,
                'task' => 'Prueba'
            ),
            2 => array(
                'id' => 9,
                'task' => 'Psdasdrueba'
            ),
        ),
    )
);

Я предполагаю, что код json прав. Если нет, я думаю, что структура, которую я хочу сделать, понятна.

Поэтому прямо сейчас я хочу извлечь задачи с помощью foreach. Таким образом, каждый раз, когда цикл запускается, он получает одно значение из задачи массива (пример 1). После этого я создаю таблицу с двумя столбцами (id и task), поэтому я хочу напечатать эту информацию.

Я попытался сделать в качестве отправной точки, но я получил Array для преобразования строк в C:\xampp\htdocs\test.php в строке 26 Array. Вот что я пробовал:

<?php
// Encode the data.
$json = json_encode(
array(
    'error'=> 'false',
        'tasks' => array(
            1 => array(
                'id' => 4,
                'task' => 'Prueba'
            ),
            2 => array(
                'id' => 9,
                'task' => 'Psdasdrueba'
            ),
        ),
    )
);

// Define the errors.
$constants = get_defined_constants(true);
$json_errors = array();

$response = json_decode($json, true);
// Show the errors for different depths.
foreach (range(4, 3, -1) as $depth) {
echo $response;
}
?>
  • 0
    Почему вы сначала кодируете, а после этого декодируете как JSON? Почему вы пытаетесь напечатать весь массив? Почему вы проходите через диапазон?
  • 0
    Я кодирую это на JSON, потому что это на самом деле тест. Реальный идет от API с JSON-кодом. Я просто попытался напечатать массив, чтобы найти отправную точку и продолжить разработку. Как мне снять лимит? @PeeHaa
Показать ещё 6 комментариев
Теги:

2 ответа

1
Лучший ответ

Вы всегда хотите напечатать массив $response. Перемещайтесь по массиву задач:

foreach ($response['tasks'] as $item) {
    echo "Id: " . $item['id']."<br />";
    echo "task: " . $item['task'] . "<hr />";
}
  • 0
    Я получаю неопределенную переменную для $id и $task @lolka_bolka
  • 0
    Да, я виноват, я отредактировал свой код. Пожалуйста, проверьте сейчас. Измените $id на $item['id']; и задача тоже.
Показать ещё 1 комментарий
0

Попробуй это...

<?php
$json = json_encode(
array(
    'error'=> 'false',
        'tasks' => array(
            1 => array(
                'id' => 4,
                'task' => 'Prueba'
            ),
            2 => array(
                'id' => 9,
                'task' => 'Psdasdrueba'
            ),
        ),
    )
);
$response = json_decode($json, true);

foreach($response['tasks'] as $value)
{
echo "Id:".$value['id']."</br>";
echo "Task:".$value['task']."</br>";
}
?>

Вывод:

Id:4
Task:Prueba
Id:9
Task:Psdasdrueba
  • 0
    Оно работает!! Точно как первый ответ. В любом случае спасибо!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню