PHP重复数组项基于价值
问题描述:
我有这样的数组:PHP重复数组项基于价值
array('adult' => 2,
'child' => 1,
'infant' => 1);
我希望新的数组是这样的:
array([0] => adult,
[1] => adult,
[2] => child,
[3] => infant);
答
$arr = array('adult' => 2, 'child' => 1,'infant' => 1);
$result = []; // declare variable to store final result
// Loop through array with value and keys
foreach ($arr as $key => $val) {
// Loop again till as per value of the Key
// Will add that key in final array those many times.
for ($i=0; $i<$val ; $i++) {
$result[] = $key;
}
}
print_r($result); // will get desired output
+0
请添加一些解释。这将有助于 –
+0
@SougataBose完成:)谢谢! – Naincy
答
你可以做一个foreach的数组并用于循环使用它的值
步骤1:
不要用键值对的foreach循环与数组
foreach($cars as $key => $value)
{
//
}
第2步:
在foreach循环中,它的循环做一个价值
for($i=0;$i<$value;$i++)
{
//
}
第3步:
指定的该$key
值循环将新创建的数组
$newArray[] = $key;
最后
<?php
$cars = array('adult' => 2,'child' => 1,'infant' => 1);
$newArray = []; // Create an Empty Array
foreach($cars as $key => $value)
{
// Loop through the $value
for($i=0;$i<$value;$i++)
{
$newArray[] = $key;
}
}
print_r($newArray);
这里的Eval Link
答
<?php
$array=array('adult' => 2,
'child' => 1,
'infant' => 1);
$final_array=[];
foreach($array as $key=>$value){
for($i=0;$i<(int)$value;$i++){
$final_array[]=$key;
}
}
echo "<pre>";
print_r($final_array);
?>
输出:
Array
(
[0] => adult
[1] => adult
[2] => child
[3] => infant
)
答
这也有助于 -
$arr = array('adult' => 2, 'child' => 1,'infant' => 1);
$result = [];
foreach ($arr as $key => $val) {
$temp = array_fill(0, $val, $key); // fill array according to value
$result = array_merge($result, $temp); // merge to original array
}
你真的应该说你已经尝试过什么,并要求对如何排序它帮助。 –