例如,我想更改數組的索引。我有一個數組在php中更改數組的索引
$a = array("a","e","i","o","u");
echo $a[0]; //output a
這意味着該數組的索引爲(0,1,2,3,4)
現在我想從指數100,而不是0
手段陣列開始我的數組與索引(100,200,300,400,500)
例如,我想更改數組的索引。我有一個數組在php中更改數組的索引
$a = array("a","e","i","o","u");
echo $a[0]; //output a
這意味着該數組的索引爲(0,1,2,3,4)
現在我想從指數100,而不是0
手段陣列開始我的數組與索引(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)];
謝謝Jackflash的回答。這是我第一次在網上問問題。你真的以非常正確的方式給出你的答案並解釋所有的事情。謝謝!!! :) –
不客氣,我的朋友! :) – Carlos
只要以這種方式創建數組。
$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");
您可以簡單地定義一個起始索引並迭代交換索引的數組。 事情是這樣的 -
$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);
如果此數組是動態創建的,那麼您可以輕鬆地在循環中指定所需的索引。 –
有沒有這樣的系統?總是有限的數值嗎?它是動態的嗎?你不能只用手輸入它嗎? – deceze
爲什麼你會想要這種行爲有一個實際的有效理由嗎? –