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; } }