php - PHP输出多维数组
问题描述
我已经在这个问题上停留了一段时间。我有一个多维数组,我想以某种方式输出。这是数组:
数组:3 [ “名字” => 数组:3 [ 0 => “比利” 1 => “莎莉” 2 => “泰勒” ] “姓氏” => 数组:3 [ 0 => "射线" 1 => “苏” 2 => “梗犬” ] “爱好” => 数组:3 [ 0 => "钢琴" 1 => “滑冰” 2 => “篮球” ] ]
我希望最终输出如下:
比利|雷|钢琴| 莎莉|苏|滑冰| 泰勒|梗犬|篮球|
不幸的是,我有现有的代码:
$输出 = ''; foreach($tempArray as $key => $value){ $output .= $value[array_search($key,$tempArray)].$delimiter; }
它只输出每个数组的第一个索引,如下所示:
比利|雷|钢琴|
所以我的问题是我如何得到剩下的两个值?我应该创建某种排序或数组和计数器,并以这种方式存储每个输出:$newArray[$counter] = $output
?
解决方案
该array_column()
函数将从二维数组中获取一列。然后把它们都塞在一起。
$array = [
"First Name" => ["BILLY", "SALLY", "TYLER"],
"Last Name" => ["RAY", "SUE", "TERRIER"],
"HOBBY" => ["PIANO", "SKATING", "BASKETBALL"],
];
$result = implode("|", array_column($array, 0)) . "\n";
$result .= implode("|", array_column($array, 1)) . "\n";
$result .= implode("|", array_column($array, 2));
echo $result;
正如评论中所指出的,您可能并不总是知道子数组的长度。这意味着将其包装在一个循环中:
$iterations = count(reset($array));
$result = "";
for ($i = 0; $i <= $iterations; $i++) {
$result .= implode("|", array_column($array, $i)) . "\n";
}
推荐阅读
- python - pandas - 将两个日期框放在一列中
- protractor - 在量角器中设置 log4js-protractor-appender 时出错
- javascript - 未知的 JavaScript 错误 - 函数只运行第一行代码
- java - Java Float vs. Long 性能
- swift - 编辑 UITextField 时的线条动画
- python - AttributeError:“DataFrame”对象没有属性“dtype”
- java - JLabel 继承类中的超级方法
- aframe - 在标记上渲染时,在框架中寻找一种通过触摸旋转和缩放模型的方法
- php - Laravel phpUnit
- ios - swift didSelectAtIndexPath 没有被触发