【问题标题】:Create multidimensional array using two single array使用两个单数组创建多维数组
【发布时间】:2017-03-23 10:45:29
【问题描述】:

我有两个数组如下。

$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)

我们将不胜感激任何帮助。

谢谢

【问题讨论】:

    标签: php multidimensional-array foreach


    【解决方案1】:

    如果 $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];
    

    但两者都可以工作并有其他输出

    【讨论】:

    • 谢谢。我们正在接近,但还没有。我得到如下输出。 Array ( [Aerospace: General] => AL-Alabama [Agriculture/Forestry/Fish ing/Mining: General] => AK-Alaska ) 而我需要; [航空航天:通用] => AL-阿拉巴马州,[航空航天:通用] => AK-阿拉斯加,[农业/林业/渔业/采矿业:通用] => AL-阿拉巴马州,[农业/林业/渔业/采矿业:一般] => AK-阿拉斯加
    • 谢谢。你给了我一个很好的方向。我能够解决问题。
    猜你喜欢
    • 2019-07-25
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多