简体   繁体   中英

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

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

This will do

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

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

echo json_encode($anArray);

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

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

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

尝试使用print_r以人类可读的形式打印它。

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

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

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

人类可读的(例如,可以记录到文本文件中......):

print_r($arr_name, TRUE);

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:

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

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.

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

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

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