了解PHP中的Array陣列和foreach

2021-09-07 07:21:26 字數 2686 閱讀 9762

1. 了解陣列

php 中的陣列實際上是乙個有序對映。對映是一種把 values 關聯到 keys 的型別。詳細的解釋可參見:php.net中的array陣列    。

2.例子:一般的陣列

這裡,我通過乙個簡單的例子,並使用圖形方式來了解陣列。

[注]:使用箭頭描述陣列$a各個單元對應某一記憶體位址的資料值(實際上,它內部結構採用hashtable結構,可以參考鳥哥寫的php中的hash演算法)。

3.例子:在陣列定義中,新增引用。

陣列$a中的第2個單元$a[1]與$x對應的是同乙個資料,使用var_dump($a)

的時候,會看到陣列的第2個單元多個&符號,即&string(1) "x",表示引用。

當 修改$x的值='y',也等同於修改$a[1]的值='y'。

下圖可以清楚的描述這一變化:

4.例子:使用foreach遍歷陣列。

每次迴圈中,當前陣列中單元的值被賦給 $value ,單元的鍵

key被賦給$key。如下圖描述:

【注:】灰色虛箭頭表示賦予某一值。

5.例子:在foreach遍歷陣列中,使用引用賦值。

//

4.-----------------------------------

$a = array(3 => 'a', 1 => 'b', 2 => 'c');

echo "";

foreach ($a

as$key => &$value

)

每次迴圈中,$value 都指向當前陣列中單元的值,再執行「 $value.='n';

」**,如下圖描述:

6.例子:對例子5的進一步分析。

在例子5,foreach遍歷陣列完成後,不會自動銷毀$value變數,與陣列$a最後乙個單元$a[2]指向同乙個資料。

這時候改變$value

的值,也就是改變了$a[2]

的值。

//

例項驗證, 陣列最後乙個元素的 $value 引用在 foreach 迴圈之後仍會保留。建議使用 unset() 來將其銷毀。

7.小結

以上例子,只是描述php中的array陣列和foreach的一些特性。學習最後,感覺php中的array陣列和foreach不同於別的程式語言,不能使用類似c語言的結構分析php。

(完.)

深入了解PHP中的Array陣列和foreach

1.了解陣列 php 中的陣列實際上是乙個有序對映。對映是一種把 values 關聯到 k程式設計客棧eys 的型別。詳細的解釋可參見 php.net中的array陣列 2.例子 一般的陣列 這裡,我通過乙個簡單的例子,並使用圖形方式來了解陣列。a array 3 a 1 b 2 c echo va...

PHP中Array關於陣列的用法

使用函式array keys 得到陣列中所有的鍵,引數 陣列 arr array arr one one arr two two arr three three newarr array keys arr print r newarr array 0 one 1 two 2 three 使用函式ar...

c 中的array陣列和vector陣列

我覺得實驗一下會記得比較牢,話不多直接上 下面是array陣列,感覺用的不多。cpp 風格陣列 array include include include using namespace std intmain for int i 0 i myint.size i size 獲取長度,vector也...