4

たとえば、配列のインデックスを変更したいと思います。私は配列を持っています

$a = array("a","e","i","o","u");
echo $a[0]; //output a

これは、この配列にインデックス(0,1,2,3,4)があることを意味します

ここで、0ではなくインデックス100から配列を開始したいと思います。

インデックス付きの配列を意味します(100,200,300,400,500)

4

7 に答える 7

5

そのように配列を宣言したい場合は、次のようにする必要があります。

$array = array(100 => 'a', 200 => 'b', 300 => 'c', 400 => 'd', 500 => 'e');

$arrayに新しい要素を短い方法で追加すると( $array[] = 'f')、割り当てられるキーはになります501

通常の配列インデックスを数百ベースのインデックスに変換する場合は、次のように実行できます。

$temp = array();
foreach ($array as $key => $value) {
    $temp[(($key + 1) * 100)] = $value;
}
$array = $temp;

しかし、おそらく、実際には配列を変換する必要はなく、代わりに次の方法で現在の配列にアクセスする必要はありません。

$i = $hundredBasedIndex / 100 - 1;
echo $array[$i];
// or directly
echo $array[($hundredBasedIndex / 100 - 1)];
于 2012-11-22T09:58:04.117 に答える
4

その他の解決策:

$a = array_combine(array(100, 200, 300, 400, 500), $a);
于 2012-11-22T10:04:46.153 に答える
1

開始インデックスを定義し、インデックスを交換する配列を反復処理するだけです。このようなもの -

$oldArray = array("a","e","i","o","u");  
$newArray = array();
$startIndex = 100;

foreach($oldArray AS $key => $value){
  $newArray[$startIndex] = $value;
  startIndex += 100;
}
于 2012-11-22T09:59:45.753 に答える
0

必要なインデックスとしてキーを使用して連想配列を作成するだけです。例えば ​​:

$myArray = array(100=>"a",200=>"e",300=>"i",400=>"o",500=>"u");

次に、次のような値を呼び出します。

echo $myArray[100] ;

注:'100'=>"a"代わりに入れない でください100=>"a"

于 2012-11-22T10:00:17.270 に答える
0

$ key = array(100、200、300、400、500);

$ b = array_combine($ key、$ a);

于 2012-11-22T10:06:45.627 に答える
-1

そのように配列を作成するだけです。

$myarray = array(
    100 => 'a',
    200 => 'b',
);

その順序の配列がすでにあり、キーに100を掛けたい場合は、ループで行うことができます(他の方法もありますが...):

$a = array('a', 'b', 'c', 'd', 'e');

$newarray = array();
foreach($a as $key => $value)
    $newarray[100*($key+1)] = $value;
于 2012-11-22T09:57:55.350 に答える
-1

配列を次のように変更するだけです。

$a = array(100 => "a", 200 => "e", 300 => "i", 400 => "o", 500 => "u");
于 2012-11-22T09:58:13.707 に答える