Подтвердить что ты не робот

PHP создает массив, где ключ и значение одинаковы

Я использую функцию range() для создания массива. Тем не менее, я хочу, чтобы keys был таким же, как value. Это нормально, когда я делаю range(0, 10), когда индекс начинается с 0, но если я делаю range(1, 11), индекс все равно начнет с 0, поэтому он заканчивается 0=>1, когда я хочу, чтобы он был 1=>1

Как я могу использовать range() для создания массива, где key совпадает с value?

4b9b3361

Ответ 1

Как насчет array_combine?

$b = array_combine(range(1,10), range(1,10));

Ответ 2

Или вы сделали это следующим образом:

$b = array_slice(range(0,10), 1, NULL, TRUE);

Найти вывод здесь: http://codepad.org/gx9QH7ES

Ответ 3

Для этого нет готового решения. Вам нужно будет создать массив самостоятельно, например:

$temp = array();
foreach(range(1, 11) as $n) {
   $temp[$n] = $n;
}

Но, что еще более важно, зачем вам это нужно? Вы можете просто использовать это значение?

Ответ 4

<?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

Ответ 5

<?php

$array = array();
foreach (range(1,11) as $r)
  $array[$r] = $r;

print_r($array);

?>

Ответ 6

Создайте функцию для этого:

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 >= вы можете использовать Generator для этого:

function sequence_equal($low, $hight, $step = 1)
{
    for ($i = $low; $i < $hight; $i += $step) {

        yield $i => $i;
    }
}