PHP-如果值2大于1,则拆分数组(

PHP-如果值2大于1,则拆分数组(,php,arrays,split,Php,Arrays,Split,今天晚上,我一直在努力研究如何将数组拆分为许多数组,这些数组由数组中的一个值定义 我可以得到这个值 $array = array ( array ("Apple", 10), array("Ball", 5) ); 然后我希望Apple有10个数组,其中值为“Apple”,Ball有5个数组,其中值为“Ball” 然后我想到了这个,但是输出似乎很奇怪 $newarray = array(); foreach($array as $val): for($i = 1;

今天晚上,我一直在努力研究如何将数组拆分为许多数组,这些数组由数组中的一个值定义

我可以得到这个值

$array = array ( 
    array ("Apple", 10),
    array("Ball", 5) 
);
然后我希望Apple有10个数组,其中值为“Apple”,Ball有5个数组,其中值为“Ball”

然后我想到了这个,但是输出似乎很奇怪

$newarray = array();
foreach($array as $val):
    for($i = 1; $i <= $val[1]; $i++):
        $newarray[$i] = $val[0];
    endfor;
endforeach;

print_r($newarray);
// Array ( [0] => Ball [1] => Ball [2] => Ball [3] => Ball [4] => Ball [5] => Ball [6] => Apple [7] => Apple [8] => Apple [9] => Apple [10] => Apple )
$newarray=array();
foreach($val形式的数组):
对于($i=1;$i Ball[1]=>Ball[2]=>Ball[3]=>Ball[4]=>Ball[5]=>Ball[6]=>Apple[7]=>Apple[8]=>Apple[9]=>Apple[10]=>Apple)
希望你们理解我的问题,希望有人能理解

请提前通知,谢谢。

您可以在此提供帮助:

$result = array();

foreach ($array as $sub) {
  $result[] = array_fill(0, $sub[1], $sub[0]);
}

print_r($result);

请参见此处的操作:

如果我理解正确,其目的是创建一个包含10个“苹果”和另一个包含5个“球”的数组


太好了!但我不想要这样的多维数组。有人能帮我吗?这又酷又短。很好。我在上面的评论中没有自己的想法,但它起作用了。:)太好了,谢谢!
$array = array ( 
    array ("Apple", 10),
    array("Ball", 5) 
);
$newarray = array();
foreach($array as $key => $val){
    $tmparray = null;
    for($i = 1; $i <= $val[1]; $i++){
        $tmparray[$i] = $val[0];
    }
    $newarray[] = $tmparray;
}
print_r($newarray);
Array
(
    [0] => Array
        (
            [1] => Apple
            [2] => Apple
            [3] => Apple
            [4] => Apple
            [5] => Apple
            [6] => Apple
            [7] => Apple
            [8] => Apple
            [9] => Apple
            [10] => Apple
        )

    [1] => Array
        (
            [1] => Ball
            [2] => Ball
            [3] => Ball
            [4] => Ball
            [5] => Ball
        )

)