复杂阵列的Foreach

时间:2015-01-07 09:05:59

标签: php json

我对此感到困惑。我有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)。之后我创建了一个包含两个colunms(id和task)的表,所以我想打印这些信息。

我试着做一个起点,但我在第26行阵列的C:\ xampp \ htdocs \ test.php中得到了数组到字符串的转换。 这就是我试过的:

<?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;
}
?>

2 个答案:

答案 0 :(得分:1)

您始终要打印$response数组。遍历任务数组:

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

答案 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