php - 将多个php数组转换为一个数组
问题描述
我需要创建一组如下所示的数组:
Array ([ID] => 55 [status] => u [resvdate] => 07/16/2018 [price] => 119.00 [source] => C)
Array ([ID] => 56 [status] => u [resvdate] => 07/17/2018 [price] => 119.00 [source] => C)
Array ([ID] => 57 [status] => u [resvdate] => 07/18/2018 [price] => 119.00 [source] => C)
来自五个看起来像这样的数组:
Array ( [resvdate1] => 07/16/2018 [resvdate2] => 07/17/2018 [resvdate3] => 07/18/2018 )
Array ( [resvdateid1] => 55 [resvdateid2] => 56 [resvdateid3] => 57 )
Array ( [resvprice1] => 119.00 [resvprice2] => 119.00 [resvprice3] => 119.00 )
Array ( [pricesource1] => C [pricesource2] => C [pricesource3] => C )
Array ( [rowstatus1] => u [rowstatus2] => u [rowstatus3] => u )
我只需要遍历每个数组并选择值还是有更优雅的方法来做到这一点?
解决方案
试一试:
$data = [
[
"resvdate1" => "07/16/2018",
"resvdate2" => "07/17/2018",
"resvdate3" => "07/18/2018"
],
[
"resvdateid1" => 55,
"resvdateid2" => 56,
"resvdateid3" => 57
],
[
"resvprice1" => "119.00",
"resvprice2" => "119.00",
"resvprice3" => "119.00"
],
[
"pricesource1" => "C",
"pricesource2" => "C",
"pricesource3" => "C"
],
[
"rowstatus1" => "u",
"rowstatus2" => "u",
"rowstatus3" => "u"
]
];
$keys = [
"resvdate" => "resvdate",
"resvdateid" => "id",
"resvprice" => "price",
"pricesource" => "source",
"rowstatus" => "status"
];
$result = [];
foreach ($data as $a) {
$i = 0;
foreach ($a as $k => $v) {
$result[$i++][$keys[preg_replace("/\d/", "", $k)]] = $v;
}
}
print_r($result);
输出
Array
(
[0] => Array
(
[resvdate] => 07/16/2018
[id] => 55
[price] => 119.00
[source] => C
[status] => u
)
[1] => Array
(
[resvdate] => 07/17/2018
[id] => 56
[price] => 119.00
[source] => C
[status] => u
)
[2] => Array
(
[resvdate] => 07/18/2018
[id] => 57
[price] => 119.00
[source] => C
[status] => u
)
)
解释
这基本上是一个列到行的映射,在此过程中涉及一些关键调整。
推荐阅读
- python - 按多列分组并计算 True 或 False 的总和
- printing - 这种3D打印效果有名字吗?
- date - 谷歌电子表格我如何用脚本添加日期,但没有 hh:mm:ss
- c# - 警告针对比项目当前目标框架更高的框架
- numpy - 循环使用重复值的 numpy 的排序值
- javascript - 如何在 for 循环中声明 OnClick() 函数并每次传递不同的值?反应
- excel - VBA遍历表并将文件从一个文件夹移动到另一个文件夹
- apache-spark - 在pyspark中一次读取多个镶木地板文件
- php - PHP 不区分大小写的排序使用不同顺序的相同数据产生不同的结果
- java - 如何在使用 CXF wadl2java maven 插件生成 pojo 时自动添加验证注释?