[英]PHP Array: Populate a range of repeats
大图:我需要处理数据以找出最符合条件的数据组合(包括最多4个重复)。
从基本数组(1,2,3)和$ repeat_max = 4变量开始,我想以编程方式创建这样的数组,因为数组值将是动态的。 请原谅任何较小的语法错误,这只是一个一般概念。 请告诉我这是否是最糟糕的主意。 如何遍历$ data并创建$ indiv?
$data = array(1,2,3);
$indiv[0] => array ([0] => array([0] = 1),
[1] => array([0] = 1, [1] = 1),
[2] => array([0] = 1, [1] = 1, [2] = 1),
[3] => array([0] = 1, [1] = 1, [2] = 1, [3] = 1)),
$indiv[1] => array ([0] => array([0] = 2),
[1] => array([0] = 2, [1] = 2),
[2] => array([0] = 2, [1] = 2, [2] = 2),
[3] => array([0] = 2, [1] = 2, [2] = 2, [3] = 2)),
$indiv[2] => array ([0] => array([0] = 3),
[1] => array([0] = 3, [1] = 3),
[2] => array([0] = 3, [1] = 3, [2] = 3),
[3] => array([0] = 3, [1] = 3, [2] = 3, [3] = 3))
array_fill
应该可以解决问题:
$indiv = array();
foreach ($data as $val) {
$tmp = array();
for ($i = 0; $i < $repeat_max; $i++) $tmp[$i] = array_fill(0, $i + 1, $val);
$indiv[] = $tmp;
}
$data = [ 1, 2 ]
和$repeat_max = 3
它看起来像这样:
Array
(
[0] => Array
(
[0] => Array
(
[0] => 1
)
[1] => Array
(
[0] => 1
[1] => 1
)
[2] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
)
[1] => Array
(
[0] => Array
(
[0] => 2
)
[1] => Array
(
[0] => 2
[1] => 2
)
[2] => Array
(
[0] => 2
[1] => 2
[2] => 2
)
)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.