1、數組定義javascript
php數組與其餘語言的數組的不一樣:php
其餘例如java語言 :同一種類型數據的集合。
php:數組能夠存儲任何類型的數據。同一個數組中能夠放int類型也能夠放string類型java
①索引數組的定義:數組
1 $attr=array(1,2,3,4,"aa"); 2 print_r($attr); 3 echo "<br/>";
顯示效果:服務器
(上圖中 1 是截取多了)函數
②關聯數組定義:與索引數組不一樣之處:有key值spa
1 $attr = array('one' => 10,"two" => 100,"three" => 10000 ); 2 print_r($attr); 3 echo @$attr[one];//單雙引號均可以 @抑制錯誤 4 echo "<br/>";
顯示效果:3d
注意:1,索引數組能夠用索引數取。 2,關聯數組須要用key值取。指針
2、數組遍歷
①for循環遍歷,針對索引數組,不能遍歷關聯數組。code
//索引數組
1 $attr=array(1,2,3,4,"aa"); 2 for ($i=0; $i<count($attr); $i++){ 3 echo @$attr[$i]."<br>"; 4 }; 5 echo "<br/>";
顯示效果:
//關聯數組
1 $attr = array('one' => 10,"two" => 100,"three" => 10000 ); 2 for ($i=0; $i<count($attr); $i++){ 3 echo @$attr[$i]."<br>"; 4 }; 5 echo "<br/>";
顯示效果:爲空白
② php中foreach遍歷
java中foreach遍歷:
1 int arr[]={1,2,3}; 2 for(int x:arr){ //數據類型 新定義的數組名 :要遍歷的數組名 3 System.out.println(x); 4 };
php中遍歷索引數組:
1 $attr=array(1,2,3,4,"aa"); 2 foreach ($attr as $value) { 3 echo $value."<br>"; 4 };
效果:
遍歷關聯數組
1 $attr = array('one' => 10,"two" => 100,"three" => 10000 ); 2 3 foreach ($attr as $value) { 4 echo $value."<br>"; 5 };
效果:
③each()函數,順序顯示,第一次取第[0]個依次向下取,將該元素以數組的形式返回;
若是超出,則不會顯示
1 $attr = array('one' => 10,"two" => 100,"three" => 10000 ); 2 print_r (each($attr)); 3 echo "<br/>"; 4 print_r (each($attr)); 5 echo "<br/>"; 6 print_r (each($attr)); 7 echo "<br/>"; 8 echo "----------------<br>"; 9 //將指針復位,指回第一個元素 10 reset($attr); 11 print_r (each($attr)); 12 echo "<br/>"; 13 print_r (each($attr)); 14 echo "<br/>"; 15 print_r (each($attr)); 16 echo "<br/>";
④list()函數 只能取索引數組
1 $attr=array(1,2,3,4,"aa"); 2 list($a,$b,$c,$d,$e)=$attr; 3 echo $a."<br>"; 4 echo $b."<br>"; 5 echo $c."<br>"; 6 echo $d."<br>"; 7 echo $e."<br>"; 8 echo "<br/>"; 9 echo "<br/>"; 10 //只取最後一個元素 11 list(,,,,$e)=$attr; 12 echo $e; 13 echo "<br/>";
⑤ 用each()和list()函數遍歷數組,索引數組和關聯數組聯合使用
1 $attr=array(1,2,3,4,"aa"); 2 list($key,$value)=each($attr); 3 echo $key."=>".$value."<br>"; 4 list($key,$value)=each($attr); 5 echo $key."=>".$value."<br>"; 6 list($key,$value)=each($attr); 7 echo $key."=>".$value."<br>"; 8 list($key,$value)=each($attr); 9 echo $key."=>".$value."<br>"; 10 list($key,$value)=each($attr); 11 echo $key."=>".$value."<br>"; 12 //超出數組的範圍,顯示 "=>"" 其實爲空 13 list($key,$value)=each($attr); 14 echo $key."=>".$value."<br>"
效果:
⑥while循環輸出
1 $attr=array(1,2,3,4,"aa"); 2 while (list($key,$value)=each($attr)) { 3 echo $key."=>".$value."<br>"; 4 };
效果:
⑦current 指針 key 值
current取當前指針指向的內容 即value;
key 取key的索引值
1 $attr=array(1,2,3,4,"aa"); 2 3 echo current($attr)."<br>"; 4 echo key($attr)."<br>"; 5 echo current($attr)."<br>"; 6 echo key($attr)."<br>"; 7 echo current($attr)."<br>"; 8 echo key($attr)."<br>"; 9 echo current($attr)."<br>"; 10 echo key($attr)."<br>"; 11 echo current($attr)."<br>"; 12 echo key($attr)."<br>";
顯示效果:只有最前一組的數值value和key值
⑧current($attr) key($attr)
next($attr), prev($attr), end($attr), reset($attr) 向下移動 向上移動 指向最後一個 指針復位
1 $attr=array(1,2,3,4,"aa"); 2 echo current($attr)."<br>"; 3 echo key($attr)."<br>"; 4 5 next($attr);//指針向下移動 6 echo current($attr); 7 echo key($attr); 8 9 prev($attr);//指針向上移動 10 echo current($attr)."<br>"; 11 echo key($attr)."<br>"; 12 13 end($attr);//指針指向最後一個 14 echo current($attr)."<br>"; 15 echo key($attr)."<br>"; 16 17 reset($attr);//指針復位 18 echo current($attr)."<br>"; 19 echo key($attr)."<br>";
顯示效果:
⑨next($attr) while循環 do...while循環
1 while (next($attr)) { //直接從下一個開始 也就是跳過[0] 直接到[1] 2 echo key($attr)." "; 3 echo current($attr); 4 echo "<br/>"; 5 };
如何避免跳過 用do...while
顯示效果:
1 do{ //無論條件知足與否,先運行一次。 2 echo key($attr)." "; 3 echo current($attr); 4 echo "<br/>"; 5 } 6 while (next($attr)) ; 7 echo "<br/>";
顯示效果:
⑩預約義數組(超全局數組)
1,print_r($_SERVER);
$_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。這個數組中的項目由 Web 服務器建立。不能保證每一個服務器都提供所有項目;服務器可能會忽略一些,或者提供一些沒有在這裏列舉出來的項目。
2,print_r($_ENV);//環境變量
這些變量被從 PHP 解析器的運行環境導入到 PHP 的全局命名空間。不少是由支持 PHP 運行的 Shell 提供的,而且不一樣的系統極可能運行着不一樣種類的 Shell,因此不可能有一份肯定的列表
3,print_r($_GET);//提交有長度限制
經過 URL 參數傳遞給當前腳本的變量的數組。
4,print_r($_POST);//沒有長度限制
經過 HTTP POST 方法傳遞給當前腳本的變量的數組。
5,print_r($_REQUEST);//與POST相同
默認狀況下包含了 $_GET ,$_POST 和 $_COOKIE 的數組。
6,print_r($_FILES);
經過 HTTP POST 方式上傳到當前腳本的項目的 數組 。
7,print_r($_SESSION);//會話控制 保存登錄信息
長時間沒有操做頁面,再次使用要求從新登錄 存儲狀態
8,print_r($_COOKIE);//存儲狀態
經過 HTTP Cookies 方式傳遞給當前腳本的變量的數組
⑪數組中元素--有無、反轉、個數、去重、刪除某個索引即值、從新排列索引、合併數組、追加元素
1 $at=array(1,2,1,4,5,6,7,8); 2 //判斷這個值是否在這個數組中 3 echo in_array(2, $at);
有的話判斷:爲1 無的話:爲空 什麼都不顯示
$at=array(1,2,1,4,5,6,7,8);
1 //反轉數組 反轉順序 2 print_r(array_reverse($at));
顯示效果:
1 $at=array(1,2,1,4,5,6,7,8); 2 //返回數組裏面元素的個數 3 echo count($at);
顯示效果:
1 $at=array(1,2,1,4,5,6,7,8); 2 //對數組裏面的值去重 3 print_r(array_unique($at));
顯示效果: 去除了[2]=>1 與 [0]=>1 重複
//刪除某一個索引號的數值
1 $at=array(1,2,1,4,5,6,7,8); 2 unset($at[1]); 3 print_r($at);
顯示效果:刪除[1] 索引數和值
接上例
1 //從新從0開始,排列索引值 2 $a=array_values($at); 3 print_r($a);
顯示效果:
1 $at=array(1,2,1,4,5,6,7,8); 2 $ae=array(11,12,13); 3 /合併數組 4 $aaa=array_merge($at,$ae); 5 print_r($aaa);
顯示效果:
//在數組中追加元素
1 $ae=array(11,12,13); 2 array_push($ae,"cccc"); 3 print_r($ae)
顯示效果:
⑫製表實例
1 $ar=array( 2 array("P1","張","女","漢","1988-2-3"), 3 array("p2","李","男","回","1988-2-13"), 4 array("p3","王","男","回","1988-12-13") 5 ); 6 echo"<table width='100%' border='1'cellpadding='0'cellspacing='0'>"; 7 8 echo "<tr><td>代號</td><td>姓名</td><td>性別</td><td>民族</td><td>生日</td></tr>"; 9 for ($i=0; $i <count($ar) ; $i++) { 10 echo"<tr>"; 11 // echo "<td>{$ar[$i][0]}</td><td>{$ar[$i][1]}</td><td>{$ar[$i][2]}</td><td>{$ar[$i][3]}</td><td>{$ar[$i][4]}</td>"; //若是這樣設置 只能有三組數據 12 13 for($j=0;$j<count($ar[$i]);$j++)//能夠經過for循環隨意插入多組數組 14 { 15 echo"<td>{$ar[$i][$j]}</td>"; 16 }; 17 echo"</tr>"; 18 };
顯示效果:
下拉菜單 提交取值①
1 <select id="sel"> 2 <?php 3 $aa1=array( 4 array("001","漢族"), 5 array("002","回族"), 6 array("003","苗族"), 7 array("004","壯族"), 8 array("005","滿族") 9 ); 10 for ($i=0; $i < count($aa1); $i++) { 11 echo "<option value='{$aa1[$i][0]}'>{$aa1[$i][1]}</option>"; 12 } 13 ?> 14 15 </select> 16 <input type="button" id="btn" value="取值" onclick="show()" /> 17 <script type="text/javascript"> 18 function show(){ 19 var ss=document.getElementById("sel"); 20 alert(ss.value); 21 }; 22 23 </script>
顯示效果:
下拉菜單 提交取值②
提交到其餘頁:用到<form action="XXX.php method="get"></form> 表單驗證
1 <form action="text4.php" method="get"> 2 <select name="nation" id="sel"> 3 <!-- //若是提交到其餘頁面,select中必須加name --> 4 <?php 5 $aa1=array( 6 array("001","漢族"), 7 array("002","回族"), 8 array("003","苗族"), 9 array("004","壯族"), 10 array("005","滿族") 11 ); 12 for ($i=0; $i < count($aa1); $i++) { 13 echo "<option value='{$aa1[$i][0]}'>{$aa1[$i][1]}</option>"; 14 } //value 值通常是主鍵值 15 ?> 16 17 </select> 18 <input type="submit" id="btn" value="取值" /> 19 </form>
顯示效果: