1. 程式人生 > >php陣列基本介紹

php陣列基本介紹

一、php陣列健名:

      (1)、php陣列健名只能是以整形數字或者字串形式的資料型別。

       (2)、若健名不是整形數字或者字串,則轉化成整形數字或者字串;

       (3)、若健名是true/false的布林型資料型別,則健名分別轉化成整形陣列1/0;若健名是實型(浮點型)資料型別,則健名轉化成整形(去掉小數點取整),若健名是NULL(null型),則對應健名轉化成''(空字串);

二、php陣列值:

(1)、php陣列中的值,可以是任意型別資料,即:可以是false、null...等資料型別;

       (2)、若一個php陣列中,健名一樣的情況下(有的能轉化成整形、字串),後面的值覆蓋前面的值;

三、php陣列建立方式:

                                            /******* 陣列的建立方式 ********/

//1、array()方式定義陣列;

$crr = array('name'=>'zhangsan','heiht'=>176,'age'=>'first',null=>'wanger','yinhang'=>'guangda','buer'=>false,'shuzi'=>'777',false=>'kaokao','mmmm'=>null);


for(;key($crr)!==null;next($crr)){   // 注意:1、當前指標所對應的健名不存在,或者陣列健名未定義不存在(空陣列)的時候,返回null(這裡不是false,false可以當做健名的);
	
	var_dump(key($crr));        // 2、由於陣列的值可以是任意型別資料,當前指標對應的值可能是0、'0'、null、''以及布林值false;  所以在for()語句中用key()判斷條件,而不用false;

	echo '<br/>';
	
}

/***結果為****

string(4) "name" 
string(5) "heiht" 
string(3) "age" 
string(0) ""          // 健名null轉化成了''(空字串);
string(7) "yinhang" 
string(4) "buer" 
string(5) "shuzi" 
int(0)                 // 健名false轉化成了0(整形數字);
string(4) "mmmm" 

*********/




//2、追加元素方式建立陣列;

$drr['name'] = 'wangwu';
$drr[] = 178;
$drr[false] = 'booler';

print_r($drr);    

// 結果為:Array ( [name] => wangwu [0] => booler ); 健名false轉化成了0,前面的'$drr[]'健名也是0,所以後面的值覆蓋前面的值(健名一樣時候);




//3、range()函式建立連續等序列陣列;

$err = range(0,5);     // 建立一個值從0到5的陣列,(每個值元素預設差1);

print_r($err);    //Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 );預設序列差是1;

$frr = range(0,10,2);  // 建立一個值為從0到10的的陣列,並設定每個值序列差是2;

print_r($frr);  //Array ( [0] => 0 [1] => 2 [2] => 4 [3] => 6 [4] => 8 [5] => 10 );





//4、array_fill():建立填充(幾個長度),一樣元素的陣列;

$grr = array_fill(-5,5,'xxoo');  // 索引從-5開始,5個元素(長度)的XXOO;

print_r($grr);  // Array ( [-5] => xxoo [0] => xxoo [1] => xxoo [2] => xxoo [3] => xxoo );  

// 如果索引從負數開始,則第一個元素的索引為指定的負數;往後索引則從0開始;




//5、array_combine():建立一個數組,第一陣列的值作為健名,第二個陣列的值,作為值;

echo '<hr/>';

$hrr = array(34,45,56,34);

$jrr = array('taso','mimi','taotao','guagua');

$mmm = array_combine($hrr,$jrr);

print_r($mmm);        //   Array ( [34] => guagua [45] => mimi [56] => taotao );  34的健名一樣,後面的值覆蓋前面的值;

// 注意:健、值的元素個數必須保持一致才行,否則會報錯,返回false;

print_r(array_combine(range(1,5),range(1,5)));    //  Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )  range()和array_comnine()結合;





//6、compact()將一個或者多個變數轉化成陣列;

//  變數名將作為數字的健名,變數值將作為陣列健名對應的值存在;


$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", "nothing_here", $location_vars);    // $location_vars 是一個可變變數;

print_r($result);    //Array ( [event] => SIGGRAPH [city] => San Francisco [state] => CA )  // 不存在的變數名將會被捨棄;陣列中的值,將作為變數的名;

四、php陣列遍歷方式:

                                                 /******* 陣列的遍歷方式 ********/


$arr = array(-1,-2,-3,0,1,2,34,5,null=>false);


// 方法1: foreach();


foreach($arr as $keys=>$values){
	
	echo $keys.'======>'.$values;
	echo '<br/>';
}


// 方法2: 利用陣列指標


reset($arr);                      // 指標回到初始位置;

for(;key($arr)!==null;next($arr)){
	
	echo key($arr).'=====>'.current($arr);
	echo '<br/>';
	
}


//  方法3:   each()函式,


reset($arr);

while(list($a,$b)= each($arr)){
	
	echo $a.'======>'.$b;
	echo '<br/>';
}

五、php陣列指標相關:

                                                /******* 陣列的指標相關 ********/
												
												
												
//foreach: 賦值(或者引用變數地址)給$values,並將陣列指標下移,Warning:陣列最後一個元素的 $value 引用在 foreach 迴圈之後仍會保留。建議使用 unset() 來將其銷燬。

//each: 返回陣列中當前指標所對應的健、值,並將指標下移一步;如果指標出界(沒有對應的單元內容的時候),則返回false;

// key:   返回當前指標所對應的健,若無對應的指標沒有健名(偏離出了陣列),或者空陣列,則返回null;

//current:  如果當前指標無對應的陣列元素,則返回false;(注意:返回的陣列當前的值,也有可能轉化能false,如0,'',false...等等);

//next: 先將內部指標指向下一個單元,再返回指標所對應的(下一單元)值; 沒有更多單元的時候(指標出界),返回false;

// resst(): 將陣列指標移動陣列的第一個元素並返回其值,如果陣列為空,則返回false;

// end():  將陣列的指標移動到陣列的最後一個單元,並返回其值;  如果陣列為空,則返回false;											
																							
																				
												
//list 注意1;

list($m,$n,$k)= array(89,92);

echo $m;  //89

echo $n;   //92

var_dump($k);   //null  引數無值的時候,預設為NULL;


// list  注意2;

list(,,$k)= array(89,2=>92);

var_dump($k);    // 92;  $k對應的是陣列下標為2 的值;

五、注意:

1、array_pop();彈出陣列最後一個元素;

2、array_shift():彈出陣列第一個元素:

3、key():返回陣列當前指標所對應的健名;

     如果陣列的當前指標超出了陣列元素的範圍,或者陣列為空,則都返回的是null;

      array_splice():去除陣列元素(並用其他值替換);和array_pop()等函式一樣,函式都是引用(地址)傳值,函式呼叫後,原陣列將一併改變;

相關推薦

php陣列基本介紹

一、php陣列健名:      (1)、php陣列健名只能是以整形數字或者字串形式的資料型別。       (2)、若健名不是整形數字或者字串,則轉化成整形數字或者字串;       (3)、若健名是true/false的布林型資料型別,則健名分別轉化成整形陣列1/0;若健名

PHP PSR 程式碼規範基本介紹

PSR 是 PHP Standard Recommendation 的簡寫,即PHP推薦標準。 目前通過的規範有 PSR-0(Autoloading Standard)、PSR-1(Basic Coding Standard)、PSR-2(Coding Style Guide)、PSR-3(Logger I

【資料結構與演算法】之棧的基本介紹及其陣列、連結串列實現---第四篇

一、棧的基本介紹 1、棧的基本概念 棧是一種限制在一端進行插入和刪除操作的線性表資料結構。棧中有兩個比較重要的操作:push(壓棧:將元素壓入棧頂)和pop(彈棧:從棧頂彈出一個元素)。都滿足先進後出、後進先出的特點! 從圖中可以看出,我們常把棧的上面稱為棧

【資料結構與演算法】之佇列的基本介紹及其陣列、連結串列實現---第五篇

一、佇列的基本概念 1、定義 佇列是一種先進先出的線性表。它只允許在表的前端進行刪除操作,而在表的後端進行插入操作,具有先進先出、後進後出的特點。進行插入操作的一端成為隊尾(tail),進行刪除操作的一端稱為隊頭(head)。當佇列中沒有元素時,則稱之為空佇列。 在

php擴充套件開發(一 基本介紹和擴充套件開發的基本步驟)

需要開發擴充套件的場景: 1)應用非常注重效率,如複雜的影象演算法,需要編寫成擴充套件模組 2)有些系統呼叫不能用PHP直接訪問,比如Linux下的fork函式建立一個程序,需要編寫擴充套件 3)需要商業化一個應用,又不想暴露原始碼 一,搭建PHP框架 1  

SAS SATA SSD基本介紹

異步io 半導體 也有 不存在 線纜 讀寫性能 解決 異步 流動 SATA硬盤采用新的設計結構,數據傳輸快,節省空間,相對於IDE硬盤具有很多優勢:   1 .SATA硬盤比IDE硬盤傳輸速度高。目前SATA可以提供150MB/s的高峰傳輸速率。今後將達到300 MB/s和

Spring Security應用開發(10) 並發控制之基本介紹

authorize 失效 session report 表示 container 頁面 屬性 ren 同一個用戶使用不同的瀏覽器登錄,將會導致什麽結果呢?Spring Security提供了多種選項。 <!-- session管理 --> <

IPv6基本介紹

ipv6IPv6協議後面來自於兩個基本推動力:第一、移動設備,安全問題服務質量保證第二、擁有眾多人口的國家IPv6和IPv4地址不同之處不僅在地址長度、格式寫法地址表示法IPv4采用點分十進制,分隔4個8位段來表示,每個段數值大小在1~255之間IPv6采用十六進制,分隔8個16位段來表示,用:來分開,掩碼使

C#操作Word Aspose.Words組件介紹及使用—基本介紹與DOM概述

控制 包含 枚舉類 讀取 標記 服務器端 方法 python level 1.基本介紹 Aspose.Words是一個商業.NET類庫,可以使得應用程序處理大量的文件任務。Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XP

【轉載】WEBRTC基本介紹

webrtc 數據流 應用 帶寬 工作 ogl 回聲 real 明顯 “WebRTC,名稱源自網頁實時通信(Web Real-Time Communication)的縮寫,是一個支持網頁瀏覽器進行實時語音對話或視頻對話的技術,是谷歌2010年以6820萬美元收購

嵌入式開發板ARM開發板-迅為4418開發板接口基本介紹

4418開發板 接口介紹 迅為4418開發板無縫兼容6818平臺,是北京迅為電子有限公司研發設計的一款開發板平臺,核心板尺寸小,引出腳多,能夠幫助工程師們快速開發新產品。行業應用:iTOP-4418開發板/6818開發板可廣泛適用於工控、智能家居、醫療、多媒體、安防、車載、金融、消費電子、手持設備、顯

Nginx基本介紹

使用 9.png -1 .cn 功能 高性能 src 請求 web服務 1.Nginx介紹 nginx是由俄羅斯人開發的一款高性能的http和反向代理服務器,也可以用來作為郵件代理。相比較於其他的服務器,具有占用內存少,穩定性高等優勢 2.反向代理 正向代理類似一個跳板機,

Nginx之基本介紹(一)

動靜分離 quit 共享內存 oct bytes err 配置文件 默認頁 日誌格式 這是一篇介紹Nginx基本信息和配置文件詳情的文章,適合入門者,如果你想深入了解Nginx請繞道 什麽是Nginx?   Nginx是輕量級,高性能,跨平臺的web服務器 Nginx的特點

http請求的基本介紹

put請求 定向 能夠 響應 容易 方法 nec 提交數據 狀態 響應碼 1xx:接收到請求並且繼續處理 ,這個是一瞬間的狀態,一般不關註 2xx:請求已被接收,理解,處理,表示正確 3xx:請求重定向 4xx:客戶請求語法錯誤或者請求資源不存在,這個是客戶端錯誤 5x

Python學習筆記_零零一:Python基本介紹

交易 社交 數據 lips engine 探討 認識 hive 初學者 Python介紹 Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他

數組運算符和控制流程的基本介紹和範例

布爾型 存儲 連接 clas spa short i++ switch 數組運算 總結 一、數組 1、概念 2、作用及舉例 二、運算符 1、分類 1)算術運算符 2)位運算符 3)比較運算符 4)邏輯運算符 三

Element-UI使用基本介紹

down tty start 服務 頁面 web this not clas Element-Ul是餓了麽前端團隊推出的一款基於Vue.js 2.0 的桌面端UI框架,手機端有對應框架是Mint UI 。 開發環境 1.安裝webpack npm install -g

PHP實現基本算法代碼

數據 ext lec key dem sse 數據結構 無數據 sch <? //-------------------- // 基本數據結構算法 //-------------------- //二分查找,要求數組已經排好序,首先,假設表中元素是按升序排列,將表中間

Axure RP 7.0 標準教程(2)--基本介紹

賬號 axure rp 相同元素 添加圖片 項目 相同 項目發布 想要 介紹 母版:用來放置一些相同元素的部件 兩個頁面都放入母版 一處更改 所有更改 添加圖片:雙擊可以本地添加 ---------- 創建share.axure賬號 https://share.ax

Js函數基本介紹

scrip 是什麽 數組 函數的參數 但是 參數 script 是不是 書寫 1. 函數的創建 在JavaScript裏面創建函數的關鍵字為function 函數名:就是在我們調用函數的時候需要書寫的標識符 形參:全稱為形式參數,調用函數的時候,這個函數所需要的參