我有以下 PHP 代码
<?php
$myRoom = array(
'Kitchen' => array('Dining Table','4 Chairs','Dishes'),
'Bathroom' => array('Towel','Medicines','Shower Gel'),
'Bedroom' => array(
'Bed' => array(
'Legs' => 4,
'Bedsheet' => 'woolen',
'Blanket' => array(
'Winter' => 'Thick',
'Summer' => 'Thin',
),
),
),
'Person' => 'Only Me',
);
my_room($myRoom);
function my_room($params) {
foreach ($params as $key => $value) {
yes_it_is(" <br /> ".$key." : ");
my_room($value);
yes_it_is($value." <br /> ");
}
}
function yes_it_is($val) {
echo $val;
}
下面的函数打印字符串,代码的输出如下所示:
厨房 : 0 : 餐桌
1 : 4 椅子
2:菜品阵列
浴室 : 0 : 毛巾
1:药品
2 : 沐浴露阵列
卧室:床:腿:4
床单:羊毛
毯子:冬天:厚
夏季:薄阵列阵列
人:只有我
如何摆脱使用其他值打印的“数组”字符串。任何其他解决方法也将不胜感激。
编辑:
我只想打印关联数组中的键和值,而不是Array
输出中的字符串。
Edit2:根据 Daedelus 的建议更新了问题
我改变了 my_room 功能如下:
function my_room($params) {
foreach ($params as $key => $value) {
yes_it_is(" <br /> ".$key." : ");
if (is_array($value))
my_room($value);
else
yes_it_is($value." <br /> ");
}
}
但输出仍然是:
厨房 : 0 : 餐桌
1 : 4 椅子
2:菜肴
浴室 : 0 : 毛巾
1:药品
2 : 沐浴露
卧室:床:腿:4
床单:羊毛
毯子:冬天:厚
夏季:薄阵列
人:只有我
后面有两个Array
打印Thin
Edit3:对不起我的错误,接受的结果完美无缺。在测试时,我有两个函数一起使用 namemy_room
和my_room2
,同时Array
显示了两个函数一起测试,但是当我注释掉my_room2
并且只显示my_room
答案中的函数时,它工作得很好。抱歉造成的任何混乱,我一起测试了两个函数,输出很奇怪。
编辑4:
根据下面的答案,我将其更改为好看的单行三元运算符,例如:
function my_room($params) {
foreach ($params as $key => $value) {
yes_it_is(" <br /> ".$key." : ");
is_array($value) ? my_room($value) : yes_it_is($value." <br /> ");
}
}