从php中的给定数组创建新数组


Creating new array from given array in php

我在php:中有这样的数组

Array
(
    [Color] => Array
        (
            [0] => Pink
            [1] => Pink
            [2] => Pink
            [3] => Pink
        )
    [Size] => Array
        (
            [0] => S
            [1] => S
            [2] => S
            [3] => M
        )
    [Brand] => Array
        (
            [0] => Raymond
            [1] => Levis
            [2] => Lee
            [3] => Raymond
        )
    [price] => Array
        (
            [0] => 1500
            [1] => 1500
            [2] => 1500
            [3] => 1600
        )
    [quantity] => Array
        (
            [0] => 2
            [1] => 2
            [2] => 2
            [3] => 3
        )
)

我想从上面的数组创建新的数组,如下所示:

    Array(
        [0] => Array
        (
            [Color] => Pink
            [Size] => S
            [Brand] => Raymond
            [price] => 1500
            [quantity] => 2
        )
        [1] => Array
        (
            [Color] => Pink
            [Size] => S
            [Brand] => Levis
            [price] => 1500
            [quantity] => 2
        )
    )

等等。任何帮助都将不胜感激。提前谢谢。

foreach ($old as $key => $values) {
    foreach ($values as $k => $val) {
        $new[$k][$key] = $val;
    }
}

只需在输入数组上进行两个循环,如下所示:

<?php
$input = array (
    'Color' => array (
        'Pink',
        'Pink',
        'Pink',
        'Pink'
    ),
    'Size' => array (
        'S',
        'S',
        'S',
        'M'
    ),
    'Brand' => array (
        'Raymond',
        'Levis',
        'Lee',
        'Raymond'
    ),
    'price' => array (
        1500,
        1550,
        1500,
        1600
    )
);
$output = array();
foreach ($input as $key => $values) {
    foreach ($values as $k => $val) {
        $output[$k][$key] = $val;
    }
}
echo '<pre>';
print_r($output);
/*
    OUTPUT:
    Array
    (
        [0] => Array
            (
                [Color] => Pink
                [Size] => S
                [Brand] => Raymond
                [price] => 1500
            )
        [1] => Array
            (
                [Color] => Pink
                [Size] => S
                [Brand] => Levis
                [price] => 1550
            )
        [2] => Array
            (
                [Color] => Pink
                [Size] => S
                [Brand] => Lee
                [price] => 1500
            )
        [3] => Array
            (
                [Color] => Pink
                [Size] => M
                [Brand] => Raymond
                [price] => 1600
            )
    )
*/
?>