如何获取这样的多维数组的键数组

时间:2017-07-31 10:26:27

标签: php

我有一个多维数组

$array = ['a'=>'one','b'=>['two','three'],'c'=>['four','five','six']];

我希望根据值(数组)的长度(计数)得到一个键数组,就像这样

$array_keys = ['a','b','b','c','c','c'];

2 个答案:

答案 0 :(得分:3)

array_merge()来粘合数组,而array_fill()应该可以解决问题:

$result = [];
foreach($array as $k=>$arr) 
   $result = array_merge($result, array_fill(0,count($arr),$k));

Live demo

答案 1 :(得分:1)

我会使用foreach的混合,并且用于:

foreach ($array as $k => $v)
{
    for ($i = 1; $i <= count($v); $i++)
    {
        $keys[] = $k
    }
}

这将循环,计算数组和foreach项的长度,将其添加到keys数组。