例如,我想更改数组的索引。我有一个数组
$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)];
其他解决方案:
$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 = 数组(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");