PHP數組介紹與使用

<?php
  /*
   * 數組是一組數據的集合。數組的每個實體包括鍵和值2部分組成。
   * 鍵:可以用數字、字符串或者數字和字符串的組合作鍵來標識數組中相應的值
   * 值:也被稱爲數組中的元素,可以是任意數據類型,甚至是混合類型
   * 1、數組類型
   * 2、數組創建
   * 3、數組輸出
   * 4、數組構造
   * 5、數組遍歷
   * 6、全局數組
   * 7、數組函數
   */
   
    /*
     * 數組類型
     * 類型1:數字索引數組--用數字作爲鍵
     * 類型2:關聯數組--使用字符串或者數字和字符串混合爲鍵
     */
    
    //舉例略掉,下面數組創建中有描述
   
   /*
    * 數組創建
    */
    
    //通過PHP函數創建數組
    //函數array    
    //語法1:array array_name(key1=>value1,key2=>value2,...) 其中,key爲字符串或數字鍵值
    //語法2:array array_name(value1,value2,...) 默認鍵值爲數字且從0開始
    
    $array1=array('first'=>'再','second'=>'見','third'=>'!');
    print_r($array1);
    echo '<br>';
    echo $array1['first'];
    
    echo '<br>';
    
    $array2=array('妥','妥','的');
    print_r($array2);
    echo '<br>';
    echo $array2[2];
    
    echo '<p>';
    
    //通過數組標識符'[]'創建數組
    $array3[0]="古";
    $array3[1]="劍";
    $array3[2]="奇";
    $array3[3]="譚";
    
    print_r($array3);
    
   
    
   
    echo '<p>';
    
    /*
     * 數組輸出
     * 情況1:只輸出數組中某一個元素。print/echo/print_r,其中print_r此時作用與print相同,建議直接使用print_r
     * 情況2:輸出數組結構中所有元素。print_r/var_dump都可以
     * 注意1:print_r函數,語法:bool print_r(mixed expr);參數爲數組時,則按照鍵值和元素的順序顯示該數組中的所有元素
     * 注意2:var_dump函數,語法:void var_dump(mixed expr[,mixed expr[,...]]);可以輸出數組或對象,而且還附帶輸出元素個數
     * 每個字符串的長度,並且能夠以縮進方式輸出數組或對象的結構
     */
     
     $array5=array('f1'=>'忠','f2'=>'奸','f3'=>'人');
     
     print_r($array5);
     echo '<br>';
     var_dump($array5);
   
     
     echo '<p>';
     /*
      * 數組的構造
      * 一維數組:數組元素爲變量時
      * 二維數組:數組元素又爲一維數組時
      * ....
      * 
      */
      
      //一維數組舉例省略
      
      //二維數組,與java二維數組相比,靈活性高
      $array_x_y=array(
                   'x1'=>array('PHP','Java','html'),
                   'x2'=>array('y1'=>'css','y2'=>'c++'),
                   'x3'=>array(0=>'JSP','one'=>'Android','two'=>'Mac')
                   );
                   
      print_r($array_x_y);
      
      
      
      echo '<p>';
      /*
       * 數組遍歷
       * 方法1:foreach結構:實質並非操作數組本身,而是數組的一個備份
       * 方法2:for語句:前提是需要利用count函數獲取數組元素中勻速的數目,然後將它作爲for的循環條件
       * 
       */
       
     $web_name=array('vip','taobao','jingdong');
     $web_url=array('www.vip.com','www.taobao.com','www.jingdong.com');
     
     //foreach語法:foreach(array_name as $key=>$value)
     foreach($web_name as $key=>$value)
     {
     	echo $value.'--'.$web_url[$key].'<br><br>';
     } 
     
     echo '<p>';
     //for語句
     
     for($i=0;$i<count($web_name);$i++)
     {
     	echo $web_name[$i].'--'.$web_url[$i].'<br><br>';
     } 
      
     
     echo '<p>';
     /*
      * 全局數組:PHP提供了一些全局數組,可以獲得大量與環境有關的信息
      * 1、$_SERVER[],是由Web服務器創建的信息,應用該數組可以獲取服務器和客戶配置以及當前請求信息
      * 2、$_GET[]和$_POST[]:分別用來接受GET和POST方法傳遞到當前頁面的數據
      * 3、$_COOKIE[]:存儲通過http cookie傳遞到腳本的信息
      * 4、$_ENV[]:用於提供與服務器有關的信息
      * 5、$_REQUEST[]:獲取GET方法、POST方法和http cookie傳遞到腳本的信息。當我們不知道通過什麼方法提交數據時,
      * 那麼就可以通過該方法獲取提交到當前頁面的數據
      * 6、$_SESSION[]:用於獲取會話變量相關的信息
      * 7、$_FILES[]:一個多維的全局數組,用於獲取通過POST方法上傳文件時的相關信息。如果爲單件上傳,則該數組爲二維數組,
      * 如果爲多文件上傳,則該數組爲三維數組
      */
     
      //列舉1~2個例子,其他的略過
      echo '當前服務器IP地址:'.$_SERVER['SERVER_ADDR'].'<br><br>';
      echo '客戶端IP地址:'.$_SERVER['REMOTE_ADDR'].'<br><br>';
      
      
      
      echo '<p>';
      /*
       * 數組函數:一些關於數組實用功能操作的封裝成的函數模塊
       * 1、統計數組元素個數:int count()
       * 2、向數組中添加元素:int array_push()
       * 3、獲取數組中最後一個元素:array_pop()
       * 4、刪除數組中重複元素:array_unique()
       * 5、獲取數組中指定元素的鍵名:array_search()和array_keys()
       * 
       */
       
      
      // 統計數組元素個數
      //語法:int count(array array_name[,int mode])
      //參數array_name指定數組對象,參數mode爲可選參數,默認值爲0,如果mode的值設置爲COUNT_RECURSIVE(或1),count()
      //函數檢測多維數組,該函數返回數組元素個數
      
      $array_count=array('數碼','家電','電腦');
      echo count($array_count);
      
      echo '<p>';
      //向數組中添加元素:將傳入的元素添加到某個數組的末尾
      //語法:int array_push(array array_name,mixed var[,mixed...])
      //參數array_name爲操作數組對象,參數var爲要加入數組的值,返回值爲數組新的元素總數
      
      $array_put=array('文學','科幻');
      print_r($array_put);
      echo '<br>';
      echo array_push($array_put,'哲學','政治');
      echo '<br>';
      print_r($array_put);
    
    
     echo '<p>';
     //獲取數組中最後一個元素:獲取並返回數組中的最後一個元素,並將數組的長度減1
     //語法:mixed array_pop(array array_name)
     //array_name爲目標數組,返回值爲取到的數組最後一個元素
     $array_last=array_pop($array_put);
     echo $array_last;
     
     
     echo '<p>';
     //刪除數組中重複元素:將數組元素的值作爲字符串排序,然後對每個值只保留第一個鍵名,
     //忽略所有後面的鍵名,即刪除數組中重複的元素
     //語法:array array_unique(array array)
     //參數array爲操作數組,返回值爲處理後不含重複元素的數組
     
     $array_repeat=array('a','a','c','d','a');
     print_r($array_repeat);
     echo '<br>';
     $result=array_unique($array_repeat);
     print_r($result);
     
     echo '<p>';
     //獲取數組中指定元素的鍵名
     //array_search函數:可以獲取數組中指定元素的鍵名。語法:mixed array_search(mixed needle,array haystack[,bool strict])
     //needle指定在數組中要搜索的值,haystack指定被搜索的數組,strict爲可選參數,如果爲true,還會在haystack檢查needle的類型
     //······
     //array_keys函數:獲取數組中重複元素的所有鍵名
     //語法:array array_keys(array array[,mixed search_value[,bool strict]])
     //參數array爲目標數組,search_value可選參數,可以指定只返回該值的所有鍵名..
     
     $array_sea=array('核桃','山楂','柑橘');
     $key_name=array_search('山楂',$array_sea);
     echo $key_name;
     echo '<br>';
     
     $array_key=array('蜘蛛俠','超人','鋼鐵俠','超人');
     $key_names=array_keys($array_key,'超人');
     print_r($key_names);
     
     
    
?>

發佈了70 篇原創文章 · 獲贊 13 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章