例如,我想更改数组的索引。我有一个数组在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
为什么你会想要这种行为有一个实际的有效理由吗? –