たとえば、配列のインデックスを変更したいと思います。私は配列を持っています
$a = array("a","e","i","o","u");
echo $a[0]; //output a
これは、この配列にインデックス(0,1,2,3,4)があることを意味します
ここで、0ではなくインデックス100から配列を開始したいと思います。
インデックス付きの配列を意味します(100,200,300,400,500)
そのように配列を宣言したい場合は、次のようにする必要があります。
$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)];
その他の解決策:
$a = array_combine(array(100, 200, 300, 400, 500), $a);
開始インデックスを定義し、インデックスを交換する配列を反復処理するだけです。このようなもの -
$oldArray = array("a","e","i","o","u");
$newArray = array();
$startIndex = 100;
foreach($oldArray AS $key => $value){
$newArray[$startIndex] = $value;
startIndex += 100;
}
必要なインデックスとしてキーを使用して連想配列を作成するだけです。例えば :
$myArray = array(100=>"a",200=>"e",300=>"i",400=>"o",500=>"u");
次に、次のような値を呼び出します。
echo $myArray[100] ;
注:'100'=>"a"
代わりに入れない でください100=>"a"
$ key = array(100、200、300、400、500);
$ b = array_combine($ key、$ a);
そのように配列を作成するだけです。
$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;
配列を次のように変更するだけです。
$a = array(100 => "a", 200 => "e", 300 => "i", 400 => "o", 500 => "u");