如何从单个数组中实现2个数组

时间:2015-01-19 11:43:15

标签: php arrays

我有以下从表单生成的数组。

[filters] => Array
        (
            [label] => Array
                (
                    [0] => label1
                    [1] => label2
                )

            [name] => Array
                (
                    [0] => name1
                    [1] => name2
                )

            [type] => Array
                (
                    [0] => type1
                    [1] => type2
                )

            [table] => Array
                (
                    [0] => table1
                    [1] => table2
                )

            [fields] => Array
                (
                    [0] => f1,f2
                    [1] => f3,f4
                )

        )

现在从上面的数组我想生成以下数组

array(
    array(
        'label'=>'label1',
        'name'=>'name1',
         'type'=>'type1',
         'table'=>'table1',
         'fields'=>'f1,f2',
     ),
    array(
        'label'=>'label2',
        'name'=>'name2',
         'type'=>'type2',
         'table'=>'table2',
         'fields'=>'f3,f4',
     ),
)

我如何实现这一目标?我尝试使用各种数组排序方法但无济于事。任何帮助/建议都是有帮助的。感谢。

修改 我尝试过以下代码:

foreach($_POST['filters'] as $ind => $filter) { 
    foreach($filter as $val) { 
        $array[$ind] = $val; 
    } 
} 
$arr[] = $array;

1 个答案:

答案 0 :(得分:0)

尝试以下代码,这对您有用:

$newarr = array();
foreach($arr['filters'] as $index => $val){
    $i = 0;
    $depth = count($arr['filters'][$index]);
    if($i < $depth) {
        for($i; $i < $depth; $i++) {
            $newarr[$i][$index] = $val[$i];
        }
    }
}
echo "<pre>";
print_r($newarr);