2012-11-14 58 views
0

如何修改第二個數組的值以「value 4」開始並以「value 6」結尾的代碼?基本上range()的第一個參數應該是動態的,但我不確定這是可能的嗎?PHP創建一系列連續行

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 
     ) 

) 

回答

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); 
+0

作品,謝謝! – stef

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 
     ) 

) 
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 
);