【发布时间】:2016-03-03 19:12:17
【问题描述】:
我想将几个数组合并为一个,它们是表单帖子的结果,其中包含未知数量的元素,例如:
$ids = [53,54,55];
$names = ['fire','water','earth'];
$temps = [500,10,5];
我想要的是制作一个函数,将这些数组作为输入并产生单个输出,例如
$elements = [['id'=>53,'name'=>'fire','temp'=>500] , ['id'=>54,'name'=>'water','temp'=>500] , ['id'=>55,'name'=>'earth','temp'=>500]]
我想出了以下解决方案:
function atg($array) {
$result = array();
for ($i=0;$i<count(reset($array));$i++) {
$newAr = array();
foreach($array as $index => $val) {
$newAr[$index] = $array[$index][$i];
}
$result[]=$newAr;
}
return $result;
}
可以这样称呼
$elements = atg(['id' => $ids, 'name' => $names, 'temp' => $temps]);
它会产生正确的输出。对我来说,这似乎有点过于复杂,而且我确信这是 PHP 中表单帖子的一个常见问题,将单独的字段组合到每个项目的单个数组中。有什么更好的解决方案?
【问题讨论】:
-
3x
temp => 500在你的输出中,错字了吗?
标签: php arrays multidimensional-array