简体   繁体   中英

How can i return all the results from my array?

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

The array at the top is the jason_decode returned. However with my foreach function it does not display the first index of the array within the array. ie. ( [0] => LC ) .

Where am I going wrong?

You need to build a recursive function, something like:

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

Tune it according to your needs.

If you know there is array hierarchy to one level only

Keep printing the values and if the value is an array using is_array .. Iterate again.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM