PHP:将子数组合并到新数组中

时间:2013-12-26 15:48:12

标签: php arrays foreach while-loop array-merge

使用民意调查脚本,但我对民意调查的选项几乎没有问题,创建了一个新的数组。

实际示例数组包含3个子数组,其中包含选项,投票总数和百分比:

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
                )

        )

无论到目前为止尝试过什么,我都无法达到我想要的结果。 有什么想法吗?

3 个答案:

答案 0 :(得分:3)

$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]
    );
}

DEMO

答案 1 :(得分:1)

$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;
}

答案 2 :(得分:0)

使用array_column()

$new_array = array();
$new_array[] = array(
    'option' => array_column($old_array, 0),
    'answers' => array_column($old_array, 1),
    'percentage' => array_column($old_array, 2),
);

Demo.

请注意,此功能是=&gt; PHP 5.5.0。如果您使用的是旧版本的PHP,则可以使用用PHP编写的实现(由此函数的作者)。这是available on GitHub