首先,了解一下 print 函数的基本用法。print 函数在 PHP 中用于输出一个字符串或变量的值。如果你想输出数组的键值对,直接使用 print 输出数组变量会得到类似这样的结果:
<span><span><span class="hljs-variable">$myArray</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(
</span><span><span class="hljs-string">"name"</span></span><span> => </span><span><span class="hljs-string">"John"</span></span><span>,
</span><span><span class="hljs-string">"age"</span></span><span> => </span><span><span class="hljs-number">30</span></span><span>,
</span><span><span class="hljs-string">"city"</span></span><span> => </span><span><span class="hljs-string">"New York"</span></span><span>
);
</span><span><span class="hljs-keyword">print</span></span><span>(</span><span><span class="hljs-variable">$myArray</span></span><span>);
</span></span>
这段代码并不会输出我们想要的数组内容,而是会返回类似如下的字符串:
<span><span><span class="hljs-title class_">Array</span></span><span>
</span></span>
这时我们需要通过其他方法来提取数组中的每个键值对并以适合的格式输出。
对于数组的输出,PHP 提供了 print_r 函数,它能够以易于阅读的格式打印数组结构和内容:
<span><span><span class="hljs-variable">$myArray</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(
</span><span><span class="hljs-string">"name"</span></span><span> => </span><span><span class="hljs-string">"John"</span></span><span>,
</span><span><span class="hljs-string">"age"</span></span><span> => </span><span><span class="hljs-number">30</span></span><span>,
</span><span><span class="hljs-string">"city"</span></span><span> => </span><span><span class="hljs-string">"New York"</span></span><span>
);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$myArray</span></span><span>);
</span></span>
输出结果会是:
<span><span>Array
(
[</span><span><span class="hljs-meta">name</span></span><span>] => John
[</span><span><span class="hljs-meta">age</span></span><span>] => </span><span><span class="hljs-number">30</span></span><span>
[</span><span><span class="hljs-meta">city</span></span><span>] => New York
)
</span></span>
虽然 print_r 已经非常清晰地展示了数组的结构,但如果我们只想单独打印每个键值对,可以采用更为手动的方法。
如果我们想要按特定格式输出数组中的每个键值对,可以使用 foreach 循环来遍历数组,并通过 print 输出每一对键值。例如:
<span><span><span class="hljs-variable">$myArray</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(
</span><span><span class="hljs-string">"name"</span></span><span> => </span><span><span class="hljs-string">"John"</span></span><span>,
</span><span><span class="hljs-string">"age"</span></span><span> => </span><span><span class="hljs-number">30</span></span><span>,
</span><span><span class="hljs-string">"city"</span></span><span> => </span><span><span class="hljs-string">"New York"</span></span><span>
);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$myArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">print</span></span><span>(</span><span><span class="hljs-string">"键: "</span></span><span> . </span><span><span class="hljs-variable">$key</span></span><span> . </span><span><span class="hljs-string">" | 值: "</span></span><span> . </span><span><span class="hljs-variable">$value</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>);
}
</span></span>
输出结果为:
<span><span><span class="hljs-section">键: name | 值: John</span></span><span>
</span><span><span class="hljs-section">键: age | 值: 30</span></span><span>
</span><span><span class="hljs-section">键: city | 值: New York</span></span><span>
</span></span>
通过这种方式,我们可以按行输出数组的每个键值对,同时控制输出的格式。
为了让输出更加美观和易于阅读,可以通过 sprintf 函数格式化每一行输出。例如:
<span><span><span class="hljs-variable">$myArray</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(
</span><span><span class="hljs-string">"name"</span></span><span> => </span><span><span class="hljs-string">"John"</span></span><span>,
</span><span><span class="hljs-string">"age"</span></span><span> => </span><span><span class="hljs-number">30</span></span><span>,
</span><span><span class="hljs-string">"city"</span></span><span> => </span><span><span class="hljs-string">"New York"</span></span><span>
);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$myArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">print</span></span><span>(</span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-string">"键: %-10s | 值: %-20s\n"</span></span><span>, </span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$value</span></span><span>));
}
</span></span>
此时输出会有更整齐的排版:
<span><span><span class="hljs-section">键: name | 值: John </span></span><span>
</span><span><span class="hljs-section">键: age | 值: 30 </span></span><span>
</span><span><span class="hljs-section">键: city | 值: New York </span></span><span>
</span></span>
通过调整 %-10s 和 %-20s 的数字,可以控制键值对的列宽,从而获得理想的输出格式。
本文介绍了如何使用 PHP 的 print 函数输出数组的键值对。我们可以通过 foreach 循环遍历数组,并结合 print 函数逐个输出每个键值对。虽然 print_r 能够直接输出整个数组,但有时我们需要对每个元素的输出进行定制化,因此使用 foreach 循环和 print 是一种非常实用的方法。
通过适当的格式化,我们还可以让输出更加清晰、整洁,便于调试和阅读。在实际开发中,根据需求灵活运用这些方法,可以大大提升代码的可读性和调试效率。