2016-02-15 34 views
2
 
Array 
( 
    [edit] => true 
    [id] => 1 
    [type] => Array 
    ( 
     [0] => LC 
    ) 
    [userid] => 1 
    [norooms] => 1 
    [park] => Central 
    [start] => 09:00 
    [end] => 11:00 
    [length] => 2 
    [student] => 79 
    [status] => Rejected 
) 
<?php 
$posted_data = array(); 
if (!empty($_POST['edit'])) { 
    $posted_data = json_decode($_POST['editVal'], true); 
} 
print_r ($posted_data); 

foreach ($posted_data as $key => $value) { 
    echo '<p>'.$key.'</p>'; 
    echo '<p>'.$value.'</p>'; 
} 
?> 

在頂部的陣列是返回的jason_decode。但是,使用我的foreach函數,它不顯示數組中的第一個索引。即。 ([0] => LC)如何從數組中返回所有結果?

我哪裏錯了?

+0

提供的答案很好,如果你想向用戶顯示數組並且需要格式化html的能力......但是如果你只是想查看數組以便調試,請查看print_r和/或var_dump。 – DragonYen

回答

2

如果你知道有陣列層級的一個級別只

保持打印值,如果該值是使用is_array數組..再次迭代。

foreach($dataArray as $key =>$value){ 
    if(is_array($value)){ 
    foreach($value as $array2Data){ 
      echo $array2Data; //you can use keys as well 
     } 
    } 
    else 
     echo $value; 
    } 
3

你需要建立一個遞歸函數,是這樣的:根據您的需求

function print_recursively(array $array) 
{ 
    foreach ($array as $key => $value) 
    { 
     if(is_array($value)) 
     { 
      print_recursively($value); 
     } 
     else 
     { 
      echo '<p>'.$key.'</p>'; 
      echo '<p>'.$value.'</p>'; 
     } 
    } 
} 

調。

+0

哇,這更像動態..!我只給了1級的解決方案.. !! –

+0

@DanyalSandeelo ehehe是的,我總是喜歡動態的功能和方法(以適應不同的情況),但這只是個人喜好的問題! :) –

+0

這是遞歸。我已經使用遞歸和最適合這裏的問題陳述..! –