簡単な質問です。次の方法で配列を埋めました。
$options = range(1, 10);
これにより、次の結果が得られます。
array
(
[0] => 1
[1] => 2
etc. etc.
)
これは私が望む結果ではありません..
次のような配列が必要です。
array
(
[1] => 1
[2] => 2
etc.
)
この簡単なタスクを達成するにはどうすればよいですか?
<?php
for( $i = 1; $i <= 10; $i ++ ) {
$array[$i] = $i;
}
出来上がり。:)
function myRange($start, $limit, $step)
{
$myArr = array();
foreach((array) range($start, $limit,$step) as $k => $v)
{
$myArr[$k+1] = $v;
}
return $myArr;
}
print_r(myRange(0, 100, 10));
?>
結果 - - -
Array
(
[1] => 0
[2] => 10
[3] => 20
[4] => 30
[5] => 40
[6] => 50
[7] => 60
[8] => 70
[9] => 80
[10] => 90
[11] => 100
)
Berry が提案したような for ループの代わりにワンライナーが必要な場合は、単にarray_combineを使用します。
$array = array_combine(range(1,10),range(1,10));
または、配列をシフトするだけです
foreach ( $array as $key => $val )
$result[ $key+1 ] = $val;