【发布时间】:2010-01-28 16:59:19
【问题描述】:
我想将我的数组键初始值设置为某个数字。 这是我所拥有的:
$tickets=array();
array_push($tickets,"10","20","TBD")
for($i=3; $i<20; $i++)
我希望我的数组初始值从 3 而不是 0 开始。
任何想法
【问题讨论】:
我想将我的数组键初始值设置为某个数字。 这是我所拥有的:
$tickets=array();
array_push($tickets,"10","20","TBD")
for($i=3; $i<20; $i++)
我希望我的数组初始值从 3 而不是 0 开始。
任何想法
【问题讨论】:
使用$tickets[3]=$value 手动设置您的第一个值,PHP 将开始将$tickets[] 放在下一个索引处(4,然后是 5,等等)。
【讨论】:
index => values,用逗号分隔,定义索引和值。 index 可以是字符串或整数类型。 (...) 如果 index 是一个整数,下一个生成的索引将是最大的整数 index + 1. php.net/manual/en/function.array.php
如果您正在那里初始化 $tickets,为什么不使用数组字面量?
$tickets=array(3=>10, 4=>20, 5=>'TBD');
print_r($tickets);
打印
Array
(
[3] => 10
[4] => 20
[5] => TBD
)
编辑和顺便说一句:这也适用于两个地方的变量,键和值。因此
$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);
【讨论】:
将$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
// )
【讨论】:
这行得通吗?
$tickets = array();
for ($i=3; $i<20; $i++) {
$tickets[$i] = 'TBD';
}
【讨论】: