EnexoOnoma
EnexoOnoma

Reputation: 8836

How can I echo or print an array in PHP?

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

Upvotes: 308

Views: 1450736

Answers (14)

davlem
davlem

Reputation: 41

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

Upvotes: 1

Akin Zeman
Akin Zeman

Reputation: 507

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

print_r($arr_name, TRUE);

Upvotes: 9

thomas
thomas

Reputation: 905

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:

Upvotes: 8

Heider Sati
Heider Sati

Reputation: 2614

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.

Upvotes: 4

Mohammad
Mohammad

Reputation: 21489

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

Upvotes: 58

A. Morales
A. Morales

Reputation: 123

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

Upvotes: -3

Niclas
Niclas

Reputation: 1406

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

Upvotes: 3

Ankur Tiwari
Ankur Tiwari

Reputation: 2782

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

Upvotes: 35

Vinod Kirte
Vinod Kirte

Reputation: 187

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

Upvotes: 8

Mark E
Mark E

Reputation: 3483

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.

Upvotes: 148

Ibrahim Azhar Armar
Ibrahim Azhar Armar

Reputation: 25745

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

Upvotes: 625

Walker
Walker

Reputation: 1225

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

Upvotes: 25

Rezigned
Rezigned

Reputation: 4922

foreach($results['data'] as $result) {
    echo $result['type'], '<br />';
}

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

Upvotes: 18

Shiplu Mokaddim
Shiplu Mokaddim

Reputation: 57650

This will do

foreach($results['data'] as $result) {
    echo $result['type'], '<br>';
}

Upvotes: 156

Related Questions