Php數組

用代碼行數來測算軟件開發進度如同按重量測算飛機制造進度
-------------比爾·蓋茨

本篇主要知識點:

  • 數組概述

  • 數組類型

  • 數組聲明

  • 數組遍歷輸出

  • 其他應用

數組概述

什么是數組,大概是人們發揮想象力創造出的存儲量的捷徑,數組的本質是儲存管理和操作一組變量,有了它,我們不必單個聲明變量,而只需要組聲明

數組類型

php里的數組同樣分為,一維數組和多維數組,但是Php通常不以這個分類來區分數組,它的數組類型分為:數字索引數組,關聯數組,兩者的區別在于索引不同,學過其他高級語言的童鞋也都知道,它們的數組索引是以0,1,2……順序的,Php的數字索引數組也是如此,但是關聯數組就不是了,他是有特定的字符串索引,類似于散列,map的鍵值對,我們可以通過字符串索引找到他們

數組聲明

知道分類之后我們需要聲明數組

聲明數組時要注意以下幾點:

1.符合標準命名規則

2.不能與其他量重名

3.區分大小寫

下面是幾種聲明方式

//用戶創建方式
$array["Jav"] ="JAVA";
$array["Php"] ="PHP";
$array["Pyt"] ="Python";
//輸出某個值
echo$array["Php"];
//專門打印數組的函數
print_r($array);

上述代碼,我們可以看到,用戶創建數組是挨個賦值的,那有沒有更方便的方法呢?答案是有的,這就是下面的這種函數創建,系統給我們提供了創建數組的函數

//通過array方法直接創建數組
$arr = array("1"=>"Php","2"=>"Java","3"=>"Python");
echo $arr["2"];

數組遍歷輸出

在上面代碼片中提到過print_r這個函數,他是專門用來打印數組的函數,但是只是一個預覽的格式,在實際中可能僅僅用來展示,如下所示

預覽.PNG

那我們應該怎么取得遍歷的值呢?

//當然是使用我們的foreach語句啦,其中$array是數組,$value是臨時變量
foreach ($array as $value)
    echo $value."\n";
遍歷.PNG
//這樣可以同時獲取鍵值
foreach ($array as $key=>$value)
    echo "鍵".$key."----值".$value."\n";

我們也可以用for語句來遍歷,不過要注意一個問題,for語句只能遍歷數字下標的數組

Php作為一個簡單的語言,當然是提供了很豐富的庫函數,如下面的list()與each(),我們可以這樣來寫我們的遍歷語句

//將數組傳給each()函數,然后用list()函數解析每一個指針對應的數據項的鍵值
while(list($name,$value) = each($array)){
    echo "鍵".$name."值".$value."\n";
}

其他應用

php為數組提供了很多有用的函數

//統計元素個數
echo count($array);
//入棧操作
array_push($array,"新添加");
//返回棧頂元素
print array_pop($array);
//刪除重復元素
array_unique($array);
//獲取鍵名
echo array_search("Python",$array);

另外還有隨機抽取,逆向排序等這里就不多介紹了。
Php數組基礎就這么多啦。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 數組的概述 PHP 中的數組實際上是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方...
    dptms閱讀 1,634評論 0 4
  • 大家不要吐槽我寫的亂,其實是簡書的markdown編輯器有問題,看內容感覺寫的很亂。我聯系過簡書的技術人員,連我理...
    Airmole閱讀 971評論 0 4
  • 在 PHP 中數組是使用最多的數據類型.大多數時間,我們不需要考慮 PHP 數組在編碼中或者應用中的作用.我們喜歡...
    MrRight_li閱讀 688評論 1 3
  • 一、數組的概念 數組可以理解為有序的(鍵-值)對組成的數據值的集合; 如果我們把變量理解為單個值的容器,那么數組就...
    XZ陽光小熊閱讀 544評論 0 0
  • 創建數組 索引數組索引為整數,如果沒有指定索引值則默認為零,依次遞增。 關聯數組數組的key為字符串。 多維數組 ...
    欒呱呱閱讀 1,702評論 3 34