287

I have this array

Array
(
  [data] => Array
    (
      [0] => Array
        (
          [page_id] => 204725966262837
          [type] => WEBSITE
        )

      [1] => Array
        (
          [page_id] => 163703342377960
          [type] => COMMUNITY
        )
      )
)

How can I just echo the content without this structure?

I tried

foreach ($results as $result) {
    echo $result->type;
    echo "<br>";
}
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
EnexoOnoma
  • 8,454
  • 18
  • 94
  • 179

14 Answers14

590

To see the contents of array you can use:

  1. print_r($array); or if you want nicely formatted array then:

     echo '<pre>'; print_r($array); echo '</pre>';
    
  2. Use var_dump($array) to get more information of the content in the array like the datatype and length.

  3. You can loop the array using php's foreach(); and get the desired output. More info on foreach is in PHP's documentation website: foreach

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Ibrahim Azhar Armar
  • 25,288
  • 35
  • 131
  • 207
155

This will do

foreach($results['data'] as $result) {
    echo $result['type'], '<br>';
}
Shiplu Mokaddim
  • 56,364
  • 17
  • 141
  • 187
140

If you just want to know the content without a format (e.g., for debugging purposes) I use this:

echo json_encode($anArray);

This will show it as a JSON which is pretty human-readable.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Mark E
  • 3,403
  • 2
  • 22
  • 36
56

There are multiple functions for printing array content that each has features.

print_r()

Prints human-readable information about a variable.

$arr = ["a", "b", "c"];
echo "<pre>";
print_r($arr);
echo "</pre>";
Array
(
    [0] => a
    [1] => b
    [2] => c
)

var_dump()

Displays structured information about expressions that includes its type and value.

echo "<pre>";
var_dump($arr);
echo "</pre>";
array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}

var_export()

Displays structured information about the given variable that returned representation is valid PHP code.

echo "<pre>";
var_export($arr);
echo "</pre>";
array (
  0 => 'a',
  1 => 'b',
  2 => 'c',
)

Note that because the browser condenses multiple whitespace characters (including newlines) to a single space (answer), you need to wrap above functions in <pre></pre> to display result in thee correct format.


Also, there is another way to print array content with certain conditions.

echo

Output one or more strings. So if you want to print array content using echo, you need to loop through the array and in the loop use echo to print array items.

foreach ($arr as $key=>$item){
    echo "$key => $item <br>";
}
0 => a
1 => b
2 => c
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Mohammad
  • 21,175
  • 15
  • 55
  • 84
34

You can use print_r, var_dump and var_export functions of PHP:

print_r: Convert into human-readable form

<?php
    echo "<pre>";
    print_r($results);
    echo "</pre>";
?>

var_dump(): will show you the type of the thing as well as what's in it.

var_dump($results);

foreach loop: using a for each loop, you can iterate each and every value of an array.

foreach($results['data'] as $result) {
    echo $result['type'] . '<br>';
}
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Ankur Tiwari
  • 2,762
  • 2
  • 23
  • 40
24

Try using print_r to print it in human-readable form.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Walker
  • 1,215
  • 2
  • 13
  • 26
18
foreach($results['data'] as $result) {
    echo $result['type'], '<br />';
}

or echo $results['data'][1]['type'];

Rezigned
  • 4,901
  • 1
  • 20
  • 18
8

You don’t have any need to use a for loop to see the data into the array. You can simply do it in the following manner:

<?php
    echo "<pre>";
    print_r($results);
    echo "</pre>";
?>
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Vinod Kirte
  • 189
  • 1
  • 6
8

Human-readable (for example, can be logged to a text file...):

print_r($arr_name, TRUE);
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Akin Zeman
  • 447
  • 7
  • 9
7

You can use var_dump() function to display structured information about variables/expressions, including its type and value, or you can use print_r() to display information about a variable in a way that's readable by humans.

Example: Say we have got the following array, and we want to display its contents.

$arr = array ('xyz', false, true, 99, array('50'));

print_r() function - Displays human-readable output

Array
(
    [0] => xyz
    [1] =>
    [2] => 1
    [3] => 99
    [4] => Array
        (
            [0] => 50
        )
)

var_dump() function - Displays values and types

array(5) {
  [0]=>
  string(3) "xyz"
  [1]=>
  bool(false)
  [2]=>
  bool(true)
  [3]=>
  int(100)
  [4]=>
  array(1) {
    [0]=>
    string(2) "50"
  }
}

The functions used in this answer can be found on the PHP documentation website, var_dump() and print_r().

For more details:

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
thomas
  • 785
  • 8
  • 7
3

If you want a parsable PHP representation, you could use:

$parseablePhpCode = var_export($yourVariable,true);

If you echo the exported code to a file.php (with a return statement) you may require it as

$yourVariable = require('file.php');
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Niclas
  • 1,306
  • 5
  • 15
  • 28
3

I checked the answers, however, (for each) in PHP it is deprecated and no longer works with the latest PHP versions.

Usually, we would convert an array into a string to log it somewhere, perhaps debugging, test, etc.

I would convert the array into a string by doing:

$Output = implode(",", $SourceArray);

Whereas:

$output is the result (where the string would be generated

",": is the separator (between each array field).

$SourceArray: is your source array.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Heider Sati
  • 2,476
  • 26
  • 28
1

If you only need echo 'type' field, you can use function 'array_column' like:

$arr = $your_array;
echo var_dump(array_column($arr['data'], 'type'));
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
davlem
  • 41
  • 4
-3

Loop through and print all the values of an associative array, You could use a foreach loop, like this:

foreach($results as $x => $value) {
    echo $value;
}
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
A. Morales
  • 123
  • 2
  • 19