簡體   English   中英

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

[英]What does PHP syntax $var1[] = $var2 mean?

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

注意$var1變量后的[]

這意味着$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; 將導致這樣的數組:

$var1=( 1 => 3, 2 => 4, 3 => (1 =>10, 2 => 20))

順便說一句,如果您還沒有使用多維數組,則訪問數據非常簡單。 如果我想使用新數組中的值20,可以按以下方式進行操作:

echo $var1[3][2];

請注意第二組方括號-基本上,您是說我要訪問$ var1數組的元素3內的數組的元素2。

關於這一點,有一件事情需要注意。 如果使用多維數組,則此語法可以使您陷入某種循環結構中。 假設您有一個二維數組,用於存儲一些記錄並希望從數據庫中獲取更多記錄:

$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推入其中。

它基本上使$ var1成為數組,並在其末尾添加$ var2的值。

$var1 = NULL;
$var2 = 'abc';
$var1[] = $var2;

$ var1現在是一個包含一個值的數組:'abc'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM