6 陣列(1) 陣列定義 自定義鍵陣列

2021-07-24 18:25:59 字數 3936 閱讀 9312

內容要點——

1、什麼是陣列

2、自定義鍵陣列

3、陣列中的陣列

4、陣列的排序

5、陣列中指標操作

6、統計陣列個數

7、將陣列轉換為標量變數

定義一組有某種共同特性的元素,叫做陣列。且下標對應的是乙個鍵(key),每個鍵對應乙個值。

a、array()函式

該函式是索引函式初始化

$usernames=array('zhao','huang','zhang','guo');

echo $usernames;

結果:列印出「array」,

解析:由於陣列並不能原樣列印,只能列印出陣列array型別。

若想列印出陣列中某乙個元素,需要找到陣列元素的下標,即對應的鍵(key)。

echo usernames[2];
結果:列印出「zhang」,

解析:由於陣列下標是從0開始。

b、range()函式

用於建立乙個包含指定範圍單元的陣列,「自動建立」

$numbers=rang(1,10);

print_r($numbers);

結果:[0]—1  [1]—2  [2]—3  [3]—4  [4]—5....

解析:接收兩個值,乙個鍵,乙個值

若改變陣列中的某個值,直接將陣列中某個值直接賦值

c、使用迴圈訪問陣列(for)

由於陣列以數字進行索引,所以用迴圈可以訪問元素

$usernames=array('zhao','zhang','huang','jiao');

for($i=0;$i<4;$i++)

結果:列印出——zhao zhang huang jiao

若不知道陣列長度,即需要用到知識點6——計算陣列個數,

for($i=0;$i

d、使用遍歷陣列,不用考慮key(foreach)

用法——foreach(陣列 as 值)

若在案例c中key值不從0開始,即不適用,在這裡forrach便解決了這個問題

if(is_array($numbers))

}

解析:在上述**示例中,表示遍歷在numbers陣列中的每乙個值value,並依次輸出。

e、判斷是否為陣列

is_array()

使用見**示例d

(1)建立自定義的鍵(key)的陣列

原始:$usernames=array('zhang','li','zhao');——若不宣告元素的key,從0計算

自定義:$usernames=array('baidu'=>'zhang','li','zhao');

(2)追加陣列,即在原來陣列基礎上新增。

//先建立乙個元素陣列

$userargs=array('zhao'=>20);

//將原來的陣列追加兩條,即下標,鍵key

$userages=array('zhang'=>19);

$userargs=array('jiao'=>18);

echo $echoargs['zhang']; //19;

(3)直接新增

將上述示例**中array去掉

$userargs['zhang']=19;

注意:若要獲取各個元素,不可以採用for,只能其他方法;

a、foreach()遍歷

foreach($ages as $key =>$value)
上述示例**中,以『.』連線字串,乙個鍵key對應乙個值value

b、each()函式

b-1:each()返回陣列中當前的鍵/值對,並將陣列指標向前移動一步;

b-2:預設情況下,指標指向第乙個鍵值對

b-3:each()這個函式返回的是乙個陣列array

b-4:print_n()這個函式列印出鍵值對

b-5:將第乙個鍵值對獲取到,再包裝成乙個新陣列

$userages=array('zhao'=>21,'jiao'=>18,'zhang'=>20);

//如果each($userages),那麼獲取的就是第乙個鍵值'zhao'=>21

echo($userages); //第一步,zhao取出 $a=each($userages); //第二步; echo($userages);

若迴圈陣列中所有的資料,

知識點:兩個感嘆號!!可將真實存在的資料轉化為布林值,true——1,false——0;

$userages=array('zhao'=>21,'jiao'=>18,'zhang'=>20);

echo each($userages); //array,表示有資料;

echo !!each($userages); //轉化為布林值,對為1,錯為0;

採用while迴圈來進行判斷在陣列中是否存在某資料

while(!!$element = each($ages))
c、list()函式

將陣列中的值賦值給一些變數

$a=array('aa','bb','cc');

list($var1,$var2)=$a;

echo $var2;

//將var1,var2賦值給a

此外,list只認識下標值key為數字的鍵,若為自定義的a、b、c便不能識別,

不可以用list來表示。

c-1:由於each()後也是陣列,

若each($userages);將zhao21取出,0表示zhao,1表示21

$userages=array('zhao'=>21,'zhang'=>10,'huang'=>18);

//將陣列中的一項看成兩份name+age;

list($name,$age)=each($userages);

echo $name;

echo $age;

d、reset()函式

該函式可將當前元素重新設定到陣列開始處。

$userages=array('zhao'=>21,'zhang'=>19,'lu'=>23);

$a=each($userages);

echo $a['key']; //zhao

$a=each($userages);

echo $a['key']; //zhang

//第三次,若取陣列中第一條陣列,將指標調整到第乙個位置即可

//reset()——將陣列內部指標指向第乙個單元

reset($userages);

$a=each($userages);

echo $a['key'];

//zhao

結果:zhao zhang  zhao

e、array_unique()函式

$numbers=array(1,23,32,12,23,12,23);

//print_r($numbers); 用於列印出上述陣列;

$newnumbers=array_unique($numbers);

//將移除後重複元素的陣列賦值給新陣列;

該函式用於移除重複的鍵。

f、array_flip()函式

該函式用於交換陣列中的鍵和值

自定義陣列

陣列是一種容器,最簡單的資料結構,其實體地址是連續的,所以,其長度是固定的。陣列一旦定義 資料型別,長度均被固定,所以不能實現增加刪除的操作 一.簡單定義 建立乙個學生類,在測試檔案中定義乙個學生類的陣列用來存放學生資訊 public class student public void study ...

自定義陣列

通過學習自定義陣列,了解陣列的資料結構。package algorithm public class array 帶參的建構函式,建立陣列 param capacity 傳入的陣列容量 public array int capacity 獲取陣列容量 public int getcapacity 獲...

自定義陣列類

在學習c 的過程中,我們經常使用到陣列,那怎麼去定義乙個類去實現陣列的功能呢?我們先列出一些經常對陣列進行的一些操作,1 建立乙個指定容量的陣列 2 用已有的陣列初始化另乙個陣列 3 用已有的陣列給另乙個陣列賦值 4 給陣列新增元素 給陣列元素賦值 5 獲取陣列指定元素的值 6 輸入一定數量的值,將...