使用两个单个数组创建多维数组

时间:2017-03-23 10:45:30

标签: php multidimensional-array foreach

我有两个数组如下。

$e which is 
Array
(
    [0] => AL-Alabama
    [1] => AK-Alaska
)

$c which is
Array
(
    [0] => Aerospace: General
    [1] => Agriculture/Forestry/Fish ing/Mining: General
)

我想使用上面两个单个数组创建一个多维数组。我写了下面的代码,但只是不工作。

$mat1=array(array());    
foreach ($e as $ee);             
         {foreach ($c as $cc);    
         {$mat1[$ee][] = $cc;}} 

它给我一个输出如下。

Array
(
    [0] => Array
        (
        )

    [AK-Alaska] => Array
        (
            [0] => Agriculture/Forestry/Fish ing/Mining: General
        )

)

而我理想的输出应该是一个存储了这样的组合的数组

(AL-Alabama,Aerospace: General), (AL-Alabama,Agriculture/Forestry/Fish ing/Mining: General) and
(AK-Alaska,Aerospace: General), (AK-Alaska,Agriculture/Forestry/Fish ing/Mining: General)

任何帮助都将受到高度赞赏。

由于

1 个答案:

答案 0 :(得分:0)

如果$ e和$ c的共同点是关键: 这确实意味着$ c和$ e必须具有相同的长度。

<?php
$c = ['AL-Alabama', 'AK-Alaska'];
$e = ['Aerospace: General', 'griculture/Forestry/Fish ing/Mining'];
$new = [];

if (count($c) == count($e)) {
    for ($i=0; $i < count($c); $i++) {
        $new[$c[$i]] = $e[$i];
    }
    var_dump($new);
} else {
    echo 'error';
}

修改 我改变了这个

$new[$i] = ['e'=>$e[$i], 'c' => $c[$i]]; 

$new[$c[$i]] = $e[$i];

但两者都有效并有其他输出