我正在使用range()
函数创建一个数组。但是,我希望keys
与value
相同。当我从range(0, 10)
开始索引0
时,这是可以的,但是如果我range(1, 11)
,则索引仍将从0
开始,因此它最终会0=>1
1}}当我希望它为1=>1
如何使用range()
创建一个key
与value
相同的数组?
答案 0 :(得分:127)
array_combine怎么样?
$b = array_combine(range(1,10), range(1,10));
答案 1 :(得分:6)
答案 2 :(得分:0)
没有开箱即用的解决方案。您必须自己创建阵列,如下所示:
$temp = array();
foreach(range(1, 11) as $n) {
$temp[$n] = $n;
}
但是,更重要的是,为什么你需要这个吗?你可以只使用这个值吗?
答案 3 :(得分:0)
<?php
function createArray($start, $end){
$arr = array();
foreach(range($start, $end) as $number){
$arr[$number] = $number;
}
return $arr;
}
print_r(createArray(1, 10));
?>
请在此处查看输出:http://codepad.org/Z4lFSyMy
答案 4 :(得分:0)
<?php
$array = array();
foreach (range(1,11) as $r)
$array[$r] = $r;
print_r($array);
?>
答案 5 :(得分:0)
创建一个函数来实现:
if (! function_exists('sequence_equal'))
{
function sequence_equal($low, $hight, $step = 1)
{
return array_combine($range = range($low, $hight, $step), $range);
}
}
使用:
print_r(sequence_equal(1, 10, 2));
输出:
array (
1 => 1,
3 => 3,
5 => 5,
7 => 7,
9 => 9,
)
在PHP 5.5&gt;中,您可以使用Generator来实现:
function sequence_equal($low, $hight, $step = 1)
{
for ($i = $low; $i < $hight; $i += $step) {
yield $i => $i;
}
}