2

簡単な質問です。次の方法で配列を埋めました。

$options = range(1, 10);

これにより、次の結果が得られます。

  array
  (
     [0] => 1
     [1] => 2
     etc. etc.
  )

これは私が望む結果ではありません..

次のような配列が必要です。

 array
 (
   [1] => 1
   [2] => 2
   etc.
 )

この簡単なタスクを達成するにはどうすればよいですか?

4

5 に答える 5

6

多分このように:

$options = range(0, 10);
unset($options[0]);

実施例

于 2012-04-24T07:44:08.010 に答える
3
<?php
for( $i = 1; $i <= 10; $i ++ ) {
   $array[$i] = $i;
}

出来上がり。:)

于 2012-04-24T07:41:47.080 に答える
2
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
)
于 2012-04-24T08:15:50.240 に答える
2

Berry が提案したような for ループの代わりにワンライナーが必要な場合は、単にarray_combineを使用します。

$array = array_combine(range(1,10),range(1,10));
于 2012-04-24T07:44:18.617 に答える
0

または、配列をシフトするだけです

foreach ( $array as $key => $val )
    $result[ $key+1 ] = $val;
于 2012-04-24T07:52:10.607 に答える