首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将三个数组转换为一个具有值/键的数组

将三个数组转换为一个具有值/键的数组
EN

Stack Overflow用户
提问于 2016-06-22 08:44:50
回答 1查看 53关注 0票数 0

注意:下面的数组不是3个不同的数组。它们是一个变量的一部分:$mainArray;

样本阵列1(密钥):

代码语言:javascript
复制
[0] => Apartments
[1] => Apartments
[2] => Apartments
[3] => Houses
[4] => Houses
[5] => Houses
[6] => Suites
[7] => Suites
[8] => Exclusive
[9] => Exclusive
[10] => SuperB

样本数组2(值):

代码语言:javascript
复制
[0] => Apartment Value1
[1] => Apartment Value2
[2] => Apartment Value3
[3] => Houses Value 1
[4] => Houses Value 2
[5] => Houses Value 3
[6] => Suites Value 1
[7] => Suites Value 2
[8] => Exclusive Value 1
[9] => Exclusive Value 2
[10] => SuperB Value 1

样本阵列3(值):

代码语言:javascript
复制
[0] => Apartment Value1
[1] => Apartment Value2
[2] => Apartment Value3
[3] => Houses Value 1
[4] => Houses Value 2
[5] => Houses Value 3
[6] => Suites Value 1
[7] => Suites Value 2
[8] => Exclusive Value 1
[9] => Exclusive Value 2
[10] => SuperB Value 1

我想要的结果是:

代码语言:javascript
复制
$array[$key] = array($array2,$array3);

抽样结果:

代码语言:javascript
复制
[Apartments] => array(rows 0-3 from Array #2, 0-3 from Array #3);
[Houses] => array(rows 3-5 from Array #2, 3-5 from Array #3);
[Exclusive] => array(rows 6-7 from Array #2, 6-7 from Array #3);
[Suites] => array(rows 8-9 from Array #2, 8-9 from Array #3);
[SuperB] => array(row 10 from Array #2, 10 from Array #3);

因此,成为具有键的维度数组。

对于这个问题,让我们始终假设这三个数组拥有完全相同的行数。不同的是,我想转换第一个数组(键),将另外两个数组作为维度数组保存。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-22 08:52:34

我想这就是你想要的。如果我能帮你更多的忙,请告诉我。

代码语言:javascript
复制
<?php
    $mainArray = [
        ["Apartments","Apartments","Apartments","Houses","Houses","Houses","Suites","Suites","Exclusive","Exclusive","SuperB"],
        ["Apartment Value1","Apartment Value2","Apartment Value3","Houses Value 1","Houses Value 2","Houses Value 3","Suites Value 1","Suites Value 2","Exclusive Value 1","Exclusive Value 2","SuperB Value 1"],
        ["Apartment Value1","Apartment Value2","Apartment Value3","Houses Value 1","Houses Value 2","Houses Value 3","Suites Value 1","Suites Value 2","Exclusive Value 1","Exclusive Value 2","SuperB Value 1"]
    ];

    if(count($mainArray[0]) != count($mainArray[1]) || count($mainArray[0]) != count($mainArray[2])) {
        throw new Exception("Arrays are not the same size");
    }

    $resultArray = [];
    $count = count($mainArray[0]);

    for($i = 0; $i < $count; $i++) {
        if(!isset($resultArray[$mainArray[0][$i]])) {
            $resultArray[$mainArray[0][$i]] = array($mainArray[1][$i], $mainArray[2][$i]);
        } else {
            $resultArray[$mainArray[0][$i]][] = $mainArray[1][$i];
            $resultArray[$mainArray[0][$i]][] = $mainArray[2][$i];
        }
    }

    echo "<pre>".print_r($resultArray, true)."</pre>";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37962884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档