2015-01-07 91 views
0

我陷入了困境。我有0個想法來做到這一點。我有這個字符串在json:複雜陣列的Foreach

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

我猜json代碼是正確的。如果沒有,我認爲我想在那裏做的結構很清楚。

所以現在我想用foreach提取任務。所以,每次循環運行時,它都會從數組任務中獲取一個值(示例1)。之後,我創建了兩個柱(id和任務)的表格,所以我想打印這些信息。

我試圖做的一個起點,但我得到數組字符串轉換在C:\ xampp \ htdocs \ test.php 26行數組。 這是我的嘗試:

<?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作爲後?你爲什麼試圖打印整個陣列?你爲什麼在一個範圍內循環? – PeeHaa

+0

我在json上編碼,因爲它實際上是一個測試。真正的來自帶有JSON代碼的api。我試圖打印數組以尋找起點和繼續發展。我應該如何消除限制? @PeeHaa – carlosremove

+0

好吧,這是對我有三個問題之一的答案。 – PeeHaa

回答

1

你總是想要打印的$response陣列。通過循環任務陣列上:

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

我正在爲'$ id'和'$ task'獲取未定義的變量@lolka_bolka – carlosremove

+0

是的,我的錯,我編輯了我的代碼。請立即檢查。將'$ id'更改爲'$ item ['id'];',並且該任務也是。 – vaso123

+0

真棒!完美的作品!!!!!!!非常感謝。我非常感謝你的幫助。 @lolka_bolka – carlosremove

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

它的工作原理!完全像第一個答案。不管怎麼說,多謝拉!! – carlosremove