2016/3/20 數組定義 數組遍歷 超全局數組 數組元素設置(in_array() 、array_reverse()、count()、array_unique()、unset()、array_va

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>

顯示效果:

相關文章
相關標籤/搜索