PHP:将子数组合并到新数组中的问题
正在编写一个轮询脚本,但我对轮询的选项没有什么问题,而是创建了一个新的轮询数组 实际示例数组包含3个子数组,其中包含选项、投票总数和百分比:PHP:将子数组合并到新数组中的问题,php,arrays,foreach,while-loop,array-merge,Php,Arrays,Foreach,While Loop,Array Merge,正在编写一个轮询脚本,但我对轮询的选项没有什么问题,而是创建了一个新的轮询数组 实际示例数组包含3个子数组,其中包含选项、投票总数和百分比: Array ( [poll_options] => Array ( [0] => Good [1] => Bad [2] => I do no
Array
(
[poll_options] => Array
(
[0] => Good
[1] => Bad
[2] => I do not care
)
[poll_answers] => Array
(
[0] => 3
[1] => 1
[2] => 1
)
[poll_percentage] => Array
(
[0] => 60
[1] => 20
[2] => 20
)
)
现在我需要创建一个新的值数组,结果必须如下所示:
Array
(
[0] => Array
(
[option] => Good
[answers] => 3
[percentage] => 60
)
[1] => Array
(
[option] => Bad
[answers] => 1
[percentage] => 20
)
[2] => Array
(
[option] => I do not care
[answers] => 1
[percentage] => 20
)
)
无论到目前为止我做了什么,我都无法达到我想要的结果。
有什么想法吗
$new_array = array();
foreach (array_keys($old_array['poll_options']) as $i) {
$new_array[] = array(
'option' => $old_array['poll_options'][$i],
'answers' => $old_array['poll_answers'][$i],
'percentage' => $old_array['poll_percentage'][$i]
);
}
使用:
请注意,此函数为=>PHP5.5.0。如果您使用的是旧版本的PHP,那么可以使用纯PHP编写的实现(由该函数的作者编写)。它是。$newArray=Array();
$count=count($array[“poll_oprions”]);
对于($i=0;$i<$count;$i++){
$newElem=Array();
$newElem[“option”]=$array[“poll_option”][$i];
$newElem[“answers”]=$array[“poll_answers”][$i];
$newElem[“百分比”]=$array[“轮询百分比”][$i];
$newArray[]=$newElem;
}
如果您尝试了,请发布代码!10x@HaimEvgi当前位置发布我今天尝试的所有内容,我将达到问题允许的最大字符数。我认为对于这个问题,不需要像我那样发布更多的代码。我想就是这样。让我快速测试一下。是的,这很有效!谢谢Barmer,我会在3分钟内将此标记为正确答案,到时候我可能会这样做!这个琐碎循环的哪一部分如此困难?我完全忘记了“array_keys()”,总是坚持使用“array_merge()”。我老了。。。再次感谢:)
$new_array = array();
$new_array[] = array(
'option' => array_column($old_array, 0),
'answers' => array_column($old_array, 1),
'percentage' => array_column($old_array, 2),
);
$newArray=Array();
$count=count($array["poll_oprions"]);
for ($i = 0; $i < $count; $i++) {
$newElem=Array();
$newElem["option"]=$array["poll_option"][$i];
$newElem["answers"]=$array["poll_answers"][$i];
$newElem["percentage"]=$array["poll_percentage"][$i];
$newArray[]=$newElem;
}