首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同数组转换为多维数组

不同数组转换为多维数组
EN

Stack Overflow用户
提问于 2015-10-09 11:25:48
回答 4查看 54关注 0票数 1

我希望将多个数组输出合并到单个数组中。下面是我这样做时得到的数组。

代码语言:javascript
复制
print_r($getData_milestone);

I有如下数组:

代码语言:javascript
复制
[milestone] => Array
    (
        [0] => milestone 1
        [1] => milestone 2
        [2] => milestone 3
    )

[date] => Array
    (
        [0] => 10/25/2015
        [1] => 10/30/2015
        [2] => 11/25/2015
    )

[status] => Array
    (
        [0] => 1
        [1] => 1
        [2] => 0
    )

和我希望得到输出,如下所示:

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [milestone] => milestone 1
            [date] => 10/25/2015
            [status] => 1
        )

    [1] => Array
        (
            [milestone] => milestone 2
            [date] => 10/30/2015
            [status] => 1
        )

    [2] => Array
        (
            [milestone] => milestone 3
            [date] => 11/25/2015
            [status] => 0
        )

)

我已经尝试过这个代码

代码语言:javascript
复制
foreach($getData_milestone['milestone'] as $miledata)
 {
  $allDatamile[$i]=$getData_milestone;
  $allDatamile[$i]=$getData_milestone['date'];
  $allDatamile[$i]=$getData_milestone['status'];
 $i++;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-10-09 11:34:33

试试这个,让我知道结果。应该管用的。我认为给定数组是一个具有“里程碑”、“日期”和“状态”键的关联数组。如果我错了就纠正我。

代码语言:javascript
复制
$outputArray = array();
foreach($givenArray['milestone'] as $key=>$val){
    $outputArray[$key]['milestone'] = $val;
    $outputArray[$key]['date'] = $givenArray['date'][$key];
    $outputArray[$key]['status'] = $givenArray['status'][$key];
}

print_r($outputArray)
票数 3
EN

Stack Overflow用户

发布于 2015-10-09 11:34:49

尝尝这个,

代码语言:javascript
复制
    $a["milestone"][] = "milestone 1";
    $a["milestone"][] = "milestone 2";
    $a["milestone"][] = "milestone 3";
    $a["date"][] = "10/25/2015";
    $a["date"][] = "10/30/2015";
    $a["date"][] = "11/25/2015";
    $a["status"][] = "1";
    $a["status"][] = "1";
    $a["status"][] = "0";

    foreach ($a['milestone'] as $key => $val) {
        $a1[$key]["milestone"] = $val;
        $a1[$key]["date"] = $a['date'][$key];
        $a1[$key]["status"] = $a['status'][$key];
    }

输出是

代码语言:javascript
复制
Array
(
[0] => Array
    (
        [milestone] => milestone 1
        [date] => 10/25/2015
        [status] => 1
    )

[1] => Array
    (
        [milestone] => milestone 2
        [date] => 10/30/2015
        [status] => 1
    )

[2] => Array
    (
        [milestone] => milestone 3
        [date] => 11/25/2015
        [status] => 0
    )

)
票数 2
EN

Stack Overflow用户

发布于 2015-10-09 11:38:05

array_column (PHP5 >= 5.5.0)可能会有所帮助-

代码语言:javascript
复制
$keys = array_keys($arr);
// if the number of element increases(to make it more dynamic)
$count = count($arr['milestone']);
$i= 0;
while($i < $count) {
  $new[] = array_column($arr, $i);
  $i++;
}

foreach($new as $k => $n) {
   $new[$k] = array_combine($keys, $n);
}
var_dump($new);

演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33037085

复制
相关文章

相似问题

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