PHP中的关联数组是通过键值对存储数据的结构,在实际开发中经常需要查看其完整内容用于调试或者数据展示,不同的输出方式适用场景存在差异,开发者可以根据需求选择合适的方法。

常用内置函数输出关联数组
1. print_r函数
print_r是PHP中用于打印变量的函数,对于关联数组会以易读的格式输出键值对,默认直接输出内容,也可以设置第二个参数为true返回字符串而不直接输出。
<?php
// 定义一个关联数组
$userInfo = [
'name' => '张三',
'age' => 25,
'hobby' => ['篮球', '阅读', '编程'],
'address' => [
'province' => '广东',
'city' => '深圳'
]
];
// 直接输出关联数组
echo '<pre>';
print_r($userInfo);
echo '</pre>';
?>
上述代码中使用了<pre>标签包裹输出内容,这样可以保留print_r输出的换行和缩进格式,让数组结构更清晰。如果不需要直接输出,可以获取返回值进行后续处理。
<?php
$arr = ['a' => 1, 'b' => 2];
$str = print_r($arr, true);
// 将输出内容保存到变量中
file_put_contents('arr_log.txt', $str);
?>
2. var_dump函数
var_dump函数会输出变量的类型和值,对于关联数组不仅会展示键和值,还会显示每个元素的数据类型,适合需要查看数据类型的调试场景。
<?php
$product = [
'id' => 1001,
'name' => '无线鼠标',
'price' => 89.9,
'stock' => 50
];
echo '<pre>';
var_dump($product);
echo '</pre>';
?>
该函数的输出会包含每个键对应值的数据类型,比如整型、字符串、浮点型等,对于排查类型相关的问题很有帮助。
3. var_export函数
var_export函数会输出变量的可解析表示形式,输出的内容是可以直接作为PHP代码使用的,同样支持第二个参数设置为true返回字符串。
<?php
$config = [
'db_host' => '127.0.0.1',
'db_user' => 'root',
'db_pass' => '123456'
];
echo '<pre>';
var_export($config);
echo '</pre>';
?>
如果需要将数组保存到文件作为配置文件使用,可以使用var_export返回字符串后写入文件,后续可以直接用PHP包含该文件获取数组。
<?php
$configStr = var_export($config, true);
file_put_contents('config.php', "<?phpnreturn " . $configStr . ";n");
// 后续获取配置
$loadedConfig = require 'config.php';
?>
自定义格式化输出关联数组
如果内置函数的输出格式不符合需求,可以自定义函数遍历关联数组输出内容,比如按照指定的缩进层级展示数组结构。
<?php
function format_assoc_array($arr, $level = 0) {
$indent = str_repeat(' ', $level);
foreach ($arr as $key => $value) {
if (is_array($value)) {
echo $indent . $key . ': [' . PHP_EOL;
format_assoc_array($value, $level + 1);
echo $indent . ']' . PHP_EOL;
} else {
echo $indent . $key . ': ' . $value . PHP_EOL;
}
}
}
$testArr = [
'id' => 1,
'info' => [
'title' => '测试标题',
'content' => '测试内容'
]
];
echo '<pre>';
format_assoc_array($testArr);
echo '</pre>';
?>
不同场景的选择建议
- 快速查看数组内容不需要类型信息,优先选择print_r,配合
<pre>标签使用体验更好 - 需要排查数据类型问题,选择var_dump函数,能清晰看到每个值的类型
- 需要生成可复用的数组代码或者保存数组配置,选择var_export函数
- 有特殊格式输出需求时,可以自定义遍历函数实现个性化输出
需要注意的是,在生产环境中尽量不要直接输出数组内容给用户,避免泄露敏感数据,调试完成后及时移除相关输出代码。
PHP关联数组print_rvar_dumpvar_export修改时间:2026-06-20 06:24:26