如何修改此代码以使第二个数组的值以"值4和#34;开头。并以"值6"结束?基本上,range()的第一个参数应该是动态的,但我不确定这是否可能?
for($i = 1; $i <= 2; $i++)
{
$rows[] = array_map(function($n) {
return "value " . $n;
}, range(1, 3));
}
print_r($rows)
应该是
Array
(
[0] => Array
(
[0] => value 1
[1] => value 2
[2] => value 3
)
[1] => Array
(
[0] => value 4
[1] => value 5
[2] => value 6
)
)
答案 0 :(得分:1)
我稍微重构了你的代码。这是我的解决方案:
for($i = 0; $i < 2; $i++)
{
$rows[] = array_map(function($n) {
return "value " . ($n+1);
}, range($i*3, $i*3+2));
};
print_r($rows);
答案 1 :(得分:0)
$row=array();
foreach(range(1,2) as $idx)
{
$row[]=array_map(function($n){return "value $n";},range(($idx-1)*3+1,$idx*3));
}
print_r($row)
这将输出:
Array
(
[0] => Array
(
[0] => value 1
[1] => value 2
[2] => value 3
)
[1] => Array
(
[0] => value 4
[1] => value 5
[2] => value 6
)
)
答案 2 :(得分:0)
如果您的逻辑中不需要for
循环,则可以直接在range
$rows = array_map(function($n) {
$n = 3 * $n;
return array("value " . (1+$n), "value " . (2+$n), "value " . (3+$n), );
}, range(0, 1) // 0 to max as in for loop
);