начальное значение ключа массива - PullRequest
2 голосов
/ 28 января 2010

Я хочу установить начальное значение ключа массива на определенное число. вот что у меня есть:

$tickets=array();
array_push($tickets,"10","20","TBD")

for($i=3; $i<20; $i++)

Я хочу, чтобы начальное значение моего массива начиналось с 3, а не с 0.

любые идеи

Ответы [ 4 ]

2 голосов
/ 28 января 2010

Установите первое значение вручную с помощью $tickets[3]=$value, и PHP начнет помещать $tickets[] в следующий индекс (4, затем 5 и т. Д.).

1 голос
/ 28 января 2010

Установите $start_key на 3 и используйте range() для создания набора ключей. Используйте array_combine(), чтобы объединить в массив, как вам нужно:

$tickets = array();
array_push($tickets,"10","20","TBD");
print_r($tickets);
// This is the zero-indexed array that occurs by default:
// Array
// (
//     [0] => 10
//     [1] => 20
//     [2] => TBD
// )

$start_key = 3;
$tickets = array_combine(range($start_key,count($tickets)+($start_key-1)), $tickets);
print_r($tickets);

// Now you have an array whose keys start at 3:
// Array
// (
//     [3] => 10
//     [4] => 20
//     [5] => TBD
// )
1 голос
/ 28 января 2010

Если вы инициализируете $ tickets, то почему бы не использовать литерал массива?

$tickets=array(3=>10, 4=>20, 5=>'TBD');
print_r($tickets);

печать

Array
(
    [3] => 10
    [4] => 20
    [5] => TBD
)

edit и btw: это также работает с переменными в обоих местах, ключом и значением. Поэтому

$x = 5;
$y = 'TBD';
$tickets=array(3=>10, 4=>20, $x=>$y);
print_r($tickets);

имеет такой же вывод, как и

$tickets=array( /* initial index here */ 3=>10, 20, 'TDB');
print_r($tickets);
0 голосов
/ 28 января 2010

Это работает?

$tickets = array();
for ($i=3; $i<20; $i++) {
  $tickets[$i] = 'TBD';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...