PHP语法$ var1 [] = $ var2是什么意思?
PHP语法$var1[] = $var2
是什么意思?
注意$var1
varable之后的[]
。
这意味着$var1
是一个数组,并且这个语法意味着您要将$var2
插入到数组末尾的新元素中。
所以如果你的数组之前有2个元素,就像这样:
$var1=( 1 => 3, 2 => 4)
$ var2的值是5,它看起来不是这样的:
$var1=( 1 => 3, 2 => 4, 3 => 5)
这也意味着,如果$ var2本身就是一个数组,那么您刚刚创建了一个二维数组。 假设如下:
$var1=( 1 => 3, 2 => 4)
$var2=( 1 => 10, 2=>20)
做一个$var1[]=$var2;
wouls会产生这样的数组:
$var1=( 1 => 3, 2 => 4, 3 => (1 =>10, 2 => 20))
另外,如果您还没有使用多维数组,访问数据非常简单。 如果我想使用新阵列的值20,我可以这样做:
echo $var1[3][2];
注意第二组方括号 - 基本上你说我想访问$ var1数组元素3内的数组的元素二。
在那张纸上,有一件事要注意。 如果你正在处理多维数组,这个语法可以在某种类型的循环结构中捕捉你。 比方说,你有一个二维数组,您可以在其中存储一些记录,并希望从数据库获得更多信息:
$var1 = (
1 => (id =>1, age => 25, posts => 40),
2 => (id =>2, age => 29, posts => 140),
3 => (id =>3, age => 32, posts => 12)
)
像这样的循环:
while($row=someDatabaseRow)
{
$var1[]=$row['id']; // value 4
$var1[]=$row['age']; // value 21
$var1[]=$row['posts']; // value 34
}
实际上会为每次执行插入一个新元素,因此你的数组最终会看起来像这样:
$var1 = (
1 => (id =>1, age => 25, posts => 40),
2 => (id =>2, age => 29, posts => 140),
3 => (id =>3, age => 32, posts => 12),
4 => 4,
5 => 21,
6 => 34
)
正确的方法是首先组装数组,然后将其附加到当前数组以维护结构,如下所示:
while($row=someDatabaseRow)
{
$tempArr= array();
$tempArr[]=$row['id']; // value 4
$tempArr[]=$row['age']; // value 21
$tempArr[]=$row['posts']; // value 34
$var1[]=$tempArr;
}
现在你的数组看起来就像你期望的那样,即:
$var1 = (
1 => (id =>1, age => 25, posts => 40),
2 => (id =>2, age => 29, posts => 140),
3 => (id =>3, age => 32, posts => 12)
4 => (id =>4, age => 21, posts => 34)
)
这意味着你正在将var2
的值推送到数组var1
。
这是array_push()
的简写
它会使$var1
和数组(如果它不是),并将$var2
推入它。