0

2番目の配列の値が「値4」で始まり「値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
        )

)
4

3 に答える 3

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);
于 2012-11-14T10:34:25.907 に答える
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
        )

)
于 2012-11-14T10:33:45.143 に答える
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
);
于 2012-11-14T10:39:32.953 に答える