PHP创build数组,其中键和值是相同的
我正在使用range()
函数来创build一个数组。 但是,我想要的keys
是相同的value
。 这是好的,当我做range(0, 10)
作为索引从0
开始,但是,如果我做range(1, 11)
,索引将仍然从0
开始,所以它结束了0=>1
当我想要它为1=>1
我怎样才能使用range()
来创build一个数组,其中的key
是相同的value
?
怎么样array_combine?
$b = array_combine(range(1,10), range(1,10));
或者你这样做了:
$b = array_slice(range(0,10), 1, NULL, TRUE);
在这里find输出: http : //codepad.org/gx9QH7ES
没有开箱即用的解决scheme。 你将不得不自己创build数组,像这样:
$temp = array(); foreach(range(1, 11) as $n) { $temp[$n] = $n; }
但是,更重要的是, 为什么你需要这个? 你可以使用这个值本身?
<?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
<?php $array = array(); foreach (range(1,11) as $r) $array[$r] = $r; print_r($array); ?>
创build一个函数来做到这一点:
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> =你可以使用发生器来做到这一点:
function sequence_equal($low, $hight, $step = 1) { for ($i = $low; $i < $hight; $i += $step) { yield $i => $i; } }