如何在 PHP 中回显或打印数组?
Posted
技术标签:
【中文标题】如何在 PHP 中回显或打印数组?【英文标题】:How to echo or print an array in PHP? 【发布时间】:2012-04-06 16:42:22 【问题描述】:我有这个数组
Array
(
[data] => Array
(
[0] => Array
(
[page_id] => 204725966262837
[type] => WEBSITE
)
[1] => Array
(
[page_id] => 163703342377960
[type] => COMMUNITY
)
)
)
我的问题是如何在没有这种结构的情况下只回显内容?我试过了
foreach ($results as $result)
echo $result->type;
echo "<br>";
【问题讨论】:
【参考方案1】:foreach($results['data'] as $result)
echo $result['type'], '<br />';
或echo $results['data'][1]['type'];
【讨论】:
谢谢你。您能告诉我如何仅回显 Array [1] 的类型吗? 数组 [1] 是什么意思? :o @andreas 我只想回显 COMMUNITY 或 163703342377960。不是数组的全部内容,而是具体 试试echo $results['data'][1]['page_id'];
【参考方案2】:
您是否尝试使用print_r
以人类可读的形式打印它?
【讨论】:
【参考方案3】:这样就可以了
foreach($results['data'] as $result)
echo $result['type'], '<br>';
【讨论】:
谢谢你。您能告诉我如何仅回显 Array [1] 的类型吗? @Kaoukkosecho $results['data'][1]['type'];
如果我没有像data
这样的密钥怎么办?
@PratikButani 使用 var_dump($array) 获取数组内容的更多信息
如何在数据库中插入这些信息?例如,如果我有一个表,其中有一列名为 type
并且我想插入 [0]['type'] 、 [1]['type'] 等等?【参考方案4】:
查看数组的内容可以使用。
1) print_r($array);
或者如果您想要格式良好的数组,那么:
echo '<pre>'; print_r($array); echo '</pre>';
2) 使用var_dump($array)
获取数组中内容的更多信息,如数据类型和长度。
3) 您可以使用 php 的 foreach();
循环数组并获得所需的输出。 php 文档网站中有关 foreach 的更多信息:http://in3.php.net/manual/en/control-structures.foreach.php
【讨论】:
漂亮优雅。您可能希望将 #1 中的结束标记从 更改为 。 这个答案没有解决 OP 犯的错误。 你能解释一下 结构是如何让这个显示“很好”的吗? @Robin标签显示由 print_r() 输出的新行和列表;如果没有【参考方案5】:,您会看到杂乱无章的未格式化数据边界。要查看它的格式,您应该查看 html 页面源代码。
如果您只是想知道没有格式的内容(例如出于调试目的),我使用这个:
echo json_encode($anArray);
这会将其显示为非常易于阅读的 JSON。
【讨论】:
我想使用 CordovaInAppBrowser
executeScript
方法从 html - php
文档中提取一些数据,没有 json_encode($array)
我无法实现!非常感谢@Mark E
echo json_encode($downloads, JSON_PRETTY_PRINT);效果更好【参考方案6】:
你不需要for循环来查看数组中的数据,你可以简单地按照以下方式进行
<?php
echo "<pre>";
print_r($results);
echo "</pre>";
?>
【讨论】:
【参考方案7】:您可以使用print_r
、var_dump
和var_export
php 函数:
print_r
: 转换成人类可读的形式
<?php
echo "<pre>";
print_r($results);
echo "</pre>";
?>
var_dump()
: 会告诉你东西的类型以及里面有什么。
var_dump($results);
foreach loop
:使用 for each 循环,您可以迭代数组的每个值。
foreach($results['data'] as $result)
echo $result['type'].'<br>';
【讨论】:
如何将结果插入数据库?【参考方案8】:我知道这是一个老问题,但如果你想要一个可解析的 PHP 表示,你可以使用:
$parseablePhpCode = var_export($yourVariable,true);
如果您将导出的代码回显到 file.php(带有 return 语句),您可能需要它作为
$yourVariable = require('file.php');
【讨论】:
【参考方案9】:循环并打印关联数组的所有值,您可以使用foreach
循环,如下所示:
foreach($results as $x => $value)
echo $value;
【讨论】:
【参考方案10】:有多种功能可以打印数组内容,每个功能都有。
print_r()
打印关于变量的人类可读信息。
$arr = ["a", "b", "c"];
echo "<pre>";
print_r($arr);
echo "</pre>";
Array
(
[0] => a
[1] => b
[2] => c
)
var_dump()
显示有关表达式的结构化信息,包括其类型和值。
echo "<pre>";
var_dump($arr);
echo "</pre>";
array(3)
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
var_export()
显示有关返回表示是有效 PHP 代码的给定变量的结构化信息。
echo "<pre>";
var_export($arr);
echo "</pre>";
array (
0 => 'a',
1 => 'b',
2 => 'c',
)
请注意,由于浏览器会将多个空白字符(包括换行符)压缩为一个空格 (answer),因此您需要将上述函数包装在 <pre></pre>
中,以便以正确的格式显示结果。
还有另一种在特定条件下打印数组内容的方法。
echo
输出一个或多个字符串。所以如果你想使用echo
打印数组内容,你需要循环遍历数组并在循环中使用echo
打印数组项。
foreach ($arr as $key=>$item)
echo "$key => $item <br>";
0 => a
1 => b
2 => c
【讨论】:
【参考方案11】:但是,我检查了答案,PHP 中的(对于每个)已弃用,并且不再适用于最新的 php 版本。
通常我们会将数组转换为字符串以记录在某处,可能是调试或测试等。
我会通过以下方式将数组转换为字符串:
$Output = implode(",", $SourceArray);
鉴于:
$output 是结果(生成字符串的地方
",": 是分隔符(每个数组字段之间
$SourceArray: 是你的源数组。
希望对你有帮助
【讨论】:
【参考方案12】:您可以使用 var_dump() 函数显示有关变量/表达式的结构化信息,包括其类型和值,或者您可以使用 print_r() 显示有关变量/表达式的信息以人类可读的方式进行变量。
示例:假设我们有以下数组,我们想要显示它的内容。
$arr = array ('xyz', false, true, 99, array('50'));
print_r() 函数 - 显示人类可读的输出
Array
(
[0] => xyz
[1] =>
[2] => 1
[3] => 99
[4] => Array
(
[0] => 50
)
)
var_dump() 函数 - 显示值和类型
array(5)
[0]=>
string(3) "xyz"
[1]=>
bool(false)
[2]=>
bool(true)
[3]=>
int(100)
[4]=>
array(1)
[0]=>
string(2) "50"
这个答案中用到的函数可以在PHP.net网站var_dump()、print_r()找到
更多详情:
» https://stackhowto.com/how-to-display-php-variable-values-with-echo-print_r-and-var_dump/
» https://stackhowto.com/how-to-echo-an-array-in-php/
【讨论】:
【参考方案13】:人类可读:(例如,可以记录到文本文件..)
print_r( $arr_name , TRUE);
【讨论】:
以上是关于如何在 PHP 中回显或打印数组?的主要内容,如果未能解决你的问题,请参考以下文章