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);
试试这个。
$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);
原始数组
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);
试试这个。
$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);