php数组如何从二维数组移动到一维

How php array will move to one dimension from two dimensional array

原始数组

Array ( [1147183647] => 3 [2147483242] => 1 ) 

预期输出

Array (1147183647,1147183647,1147183647,2147483242)

如何根据值扩展数组键

遍历每个键值对并将键添加到输出数组以获得重复次数的值:

$output = array();
$arr = array(1147183647 => 3, 2147483242 => 1);
foreach($arr as $v => $rep) {
  for($i = 0; $i < $rep; $i++) {
    $output[] = $v;
  }
}

这是一个简单的片段。

<?php

//initialize array
$array = array(
    "1147183647" => 3, "2147483242" => 1
    ); 

//new array to hold the values
$new =array();

foreach($array as $k=>$v){

    //echo $k."-".$v."<br>";
    for($i=0; $i<$v; $i++){
        $new[] = $k;
    }

}

//check the output
print_r($new);
?>

比使用 2 个循环的方法更性感的是使用内置的 array_fill 函数

<?php
$array = array(1147183647 => 3, 2147483242 => 1);

$new=array();
foreach ($array as $key=>$var){
$new= array_merge($new,array_fill(0,$var,$key));
}

print_r($new);

演示:http://codepad.viper-7.com/NTcDhC

试试这个。

$array = array(1147183647 => 3, 2147483242 => 1);

    $result=array();
    foreach ($array as $key=>$var){
        $result= array_merge($result,array_fill(0,$var,$key));
    }


    var_dump($result);