PHP语法$ var1 [] = $ var2是什么意思?

alf*_*nee 0 php syntax

PHP语法$var1[] = $var2是什么意思?

注意[]后面的$var1varable.

Flu*_*feh 6

这意味着它$var1是一个数组,这种语法意味着您将插入$var2到数组末尾的新元素中.

所以如果你的数组之前有2个元素,就像这样:

$var1=( 1 => 3, 2 => 4)
Run Code Online (Sandbox Code Playgroud)

并且$ var2的值为5,它看起来不像这样:

$var1=( 1 => 3, 2 => 4, 3 => 5)
Run Code Online (Sandbox Code Playgroud)

这也意味着如果$ var2本身就是一个数组,那么你刚刚创建了一个二维数组.假设如下:

$var1=( 1 => 3, 2 => 4)
$var2=( 1 => 10, 2=>20)
Run Code Online (Sandbox Code Playgroud)

做一个$var1[]=$var2;wouls导致这样的数组:

$var1=( 1 => 3, 2 => 4, 3 => (1 =>10, 2 => 20))
Run Code Online (Sandbox Code Playgroud)

另外,如果您还没有使用过多维数组,那么访问数据非常简单.如果我想使用新数组中的值20,我可以这样做:

echo $var1[3][2];
Run Code Online (Sandbox Code Playgroud)

注意第二组方括号 - 基本上你要说我想访问$ var1数组的元素3中的数组元素二.

在这方面,有一点需要注意.如果您正在使用多维数组,则此语法可以在某种循环结构中捕获您.假设您有一个二维数组,您可以在其中存储一些记录,并希望从数据库中获取更多信息:

$var1 = ( 
    1 => (id =>1, age => 25, posts => 40),
    2 => (id =>2, age => 29, posts => 140),
    3 => (id =>3, age => 32, posts => 12)
    )
Run Code Online (Sandbox Code Playgroud)

像这样的循环如下:

while($row=someDatabaseRow)
{
    $var1[]=$row['id']; // value 4
    $var1[]=$row['age']; // value 21
    $var1[]=$row['posts']; // value 34
}
Run Code Online (Sandbox Code Playgroud)

将为每次执行插入一个新元素,因此你的数组最终会像这样:

$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
    )
Run Code Online (Sandbox Code Playgroud)

正确的方法是首先组装数组,然后将它附加到当前数组以维护结构,如下所示:

while($row=someDatabaseRow)
{
    $tempArr= array();
    $tempArr[]=$row['id']; // value 4
    $tempArr[]=$row['age']; // value 21
    $tempArr[]=$row['posts']; // value 34
    $var1[]=$tempArr;
}
Run Code Online (Sandbox Code Playgroud)

现在你的数组看起来像你期望的那样,即:

$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)
    )
Run Code Online (Sandbox Code Playgroud)