程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP入門教程之數組用法匯總(創建,刪除,遍歷,排序等)

PHP入門教程之數組用法匯總(創建,刪除,遍歷,排序等)

編輯:PHP綜合

本文實例總結了PHP數組用法。分享給大家供大家參考,具體如下:

Demo1.php

<?php
  //創建一個數組變量
  $userNames = array('張三','李四','王五');
  //將這個數組打印出來
// echo $userNames;//Array
// $userName = '張三';
// echo $userName;//張三
  //如果你想打印出這個數組的某一個元素
  //那你必須找到這個元素的下標,鍵(key)
  //0,1,2
  //echo $userNames[2];//王五
  //print_r -- 打印關於變量的易於理解的信息。
  //print_r($userNames);//Array ( [0] => 張三 [1] => 李四 [2] => 王五 )
  //$userNames 是一個數組變量,而 $userNames[x] 可以理解成數組變量下的小變量
  $userNames[4] = '趙七';
  print_r($userNames);//Array ( [0] => 張三 [1] => 李四 [2] => 王五 [4] => 趙七 )
?>

Demo2.php

<?php
  //range -- 建立一個包含指定范圍單元的數組
  //range 包含指定數組
  //包含兩種東西,一種叫做鍵(key),一種叫做值(value)
  //key 是自動生成的,默認從 0 開始,每次 +1
  //value 是你自己賦值的
  //$numbers = range(1,4);
  //print_r($numbers);  //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
// $letters = range('a','e');
// print_r($letters);//Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
// echo $letters[3];
?>

Demo3.php

<?php
  $userNames = array('張三','李四','王五');
  //通過循環來顯示數組裡的所有值
  //從 0-5 之間循環
// for($i=0;$i<3;$i++){
//   echo ($i+1).'-->'.$userNames[$i].'<br/>';
// }
  /*
   * 1-->張三
   * 2-->李四
   * 3-->王五
   * */
// echo count($userNames); //3
// for($i=0;$i<count($userNames);$i++){
//   echo ($i+1).'-->'.$userNames[$i].'<br/>';
// }
  //如果 key 不是從 0 開始,或者說,壓根不是數字,那麼就無法用無精打采循環來實現顯示數據列表
  //通過 foreach 循環來遍歷數組,這方式好處,不需要去考慮 key
// foreach ($userNames as $value){
//   echo $value.'<br/>';
// }
  //foreach 遍歷 $key => $value
// foreach ($userNames as $keyaaa => $value){
//   echo $keyaaa.'-->'.$value.'<br/>';
// }
  /**
   * 0-->張三
   * 1-->李四
   * 2-->王五
   * */
  //所以,你要先做個判斷
  if(is_array($userNames)){
    foreach ($userNames as $key => $value){
      echo $key.'-->'.$value.'<br/>';
    }
  }else{
    echo $userNames;
  }
?>

Demo4.php

<?php
  $userNames = array('張三','李四','王五');
  print_r($userNames);
  echo $userNames[0];
?>

Demo5.php

<?php
  //創建自定義鍵(key)的數組
  //如果你不去聲明元素的 key ,那麼從開始 0 計算
// $userNames = array('baidu'=>'張三','李四','王五');
// print_r($userNames); //Array ( [baidu] => 張三 [0] => 李四 [1] => 王五 )
  $userNames = array('baidu'=>'張三','taobao'=>'李四','360'=>'王五');
  print_r($userNames); //Array ( [baidu] => 張三 [taobao] => 李四 [360] => 王五 )
  echo $userNames['baidu'];
?>

Demo6.php

<?php
  //先創建只一個元素的數組
  $userAge = array('chaoyv'=>25);
  //打印出 chaoyv 的年齡
  //echo $userAge['chaoyv']; //25
  //將以前的數組,追加兩條,這裡說的下標,鍵,key 是一個東西
  $userAge['yike'] = 30;
  $userAge['wife'] = 24;
  print_r($userAge);
?>

Demo7.php

<?php
  //array 關鍵字都可以不要,就能創建數組
  $userAges['chaoyv'] = 25;
  //print_r($userAges); //Array ( [chaoyv] => 25 )
  $userAges['yike'] = 30;
  $userAges['wife'] = 24;
  //print_r($userAges); //Array ( [chaoyv] => 25 [yike] => 30 [wife] => 24 )
  //這裡無法使用 for 循環將數據全部顯示出來,只能通過 foreach 遍歷出來
  foreach ($userAges as $value){
    echo $value.'<br/>';
  }
?>

Demo8.php

<?php
// $userAges['chaoyv'] = 25;
// $userAges['yike'] = 30;
// $userAges['wife'] = 24;
  $username = array('世'=>'何開','血'=>'趙血兒','學'=>'墨學之');
  //print_r($username);
  //each 的使用
  //each -- 返回數組中當前的鍵/值對並將數組指針向前移動一步
  //這裡有一個指針,默認情況下,指針是指定第一個鍵值對
  //這裡的第一個鍵值對是 '世'=>'何開'
  //如果each($username),那麼獲取的就是第一個鍵值對 '世'=>'何開'
  //each 這個函數返回的是一個數組,
  //each 將第一個鍵值對獲取到,然後包裝成一個新的數組。
  //print_r(each($username));
  //相當於 $a = Array ( [1] => 何開 [value] => 何開 [0] => 世 [key] => 世 )
  //$a = each($username);
  //echo $a[value];
  print_r(each($username));
  echo '<br/>';
  print_r(each($username));
?>

Demo9.php

<?php
  $username = array('世'=>'何開','血'=>'趙血兒','學'=>'墨學之');
  //這裡,我們怎麼使用 each 來循環所有的數據呢?
  //相當於 $a = Array ( [1] => 何開 [value] => 何開 [0] => 世 [key] => 世 )
  //兩個感歎號,表示真是存在的數據轉換成布爾值
// echo !!each($username);//說明有數據,有數據,用布爾值的理念就是真(true)
// echo !!each($username);
// echo !!each($username);
// echo !!each($username);//第四個是假的
  while (!!$a = each($username)){
    echo $a['key'].'-->'.$a['value'].'<br/>';
  }
// $a = each($username);
// echo $a[0].'---'.$a[1].'<br/>';
// $a = each($username);
// echo $a[0].'---'.$a[1].'<br/>';
// $a = each($username);
// echo $a[0].'---'.$a[1].'<br/>';
// /**
//  * 世---何開
//  * 血---趙血兒
//  * 學---墨學之
//  * */
?>

Demo10.php

<?php
// $usernames = array('世'=>'何開','血'=>'趙血兒','學'=>'墨學之');
// $a = each($usernames);
// //世-->何開
// echo $a['key'];
// echo '-->';
// echo $a['value'];
// $a = each($usernames);
// //血-->趙血兒
// echo $a['key'];
// echo '-->';
// echo $a['value'];
// //list -- 把數組中的值賦給一些變量
// $a = array('aaa','bbb','ccc','ddd');
////  print_r($a);//Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd )
// list($var1,$var2,$var3,$var4) = $a;
// echo $var4;
// $usernames = array(0=>'何開','血'=>'趙血兒','學'=>'墨學之');
// //list 只能認識 key 為數字的
// //自定義的字符串 key 是無法使用 list 來識別的
// list($a,$b,$c) = $usernames;
// echo $a;//何開
  $usernames = array('世'=>'何開','血'=>'趙血兒','學'=>'墨學之');
  //相當於 $a = Array ( [1] => 何開 [value] => 何開 [0] => 世 [key] => 世 )
  list($name,$username) = each($usernames);
  echo $username;
?>

Demo11.php

<?php
  $usernames = array('世'=>'何開','血'=>'趙血兒','學'=>'墨學之');
  $a =each($usernames);
  echo $a[key];
  $a =each($usernames);
  echo $a[key];
  //第三次,我想取數組的第一條數組
  //只要將數組的指針調整到第一個位置即可
  //reset -- 將數組的內部指針指向第一個單元
  reset($usernames);
  $a = each($usernames);
  echo $a[key];
  //世血世
?>

Demo12.php

<?php
// $usernames = array('世'=>'何開','境'=>'何開','血'=>'趙血兒','學'=>'墨學之');
// print_r($usernames);
// echo '<br/>';
// //array_unique -- 移除數組中重復的值
// //創建了一個新數組,而新數組呢,已經移除掉了,舊的數組原封不動
// $a = array_unique($usernames);
// print_r($a);
  $numbers = array(1,24,2,1,3,4,2,6,4,2,4,56,2,4,5);
  print_r($numbers);
  $newNumbers = array_unique($numbers);
  print_r($newNumbers);
?>

Demo13.php

<?php
  $usernames = array('世'=>'何開','境'=>'何開','血'=>'趙血兒','學'=>'墨學之');
  print_r($usernames);
  echo '<br/>';
  //array_flip -- 交換數組中的鍵和值
  $newUsernames = array_flip($usernames);
  print_r($newUsernames);
  /**
   * Array ( [世] => 何開 [境] => 何開 [血] => 趙血兒 [學] => 墨學之 )
   * Array ( [何開] => 境 [趙血兒] => 血 [墨學之] => 學 )
   * */
?>

Demo14.php

<?php
  //創建一個單一的數組
  $products = array(
    array('蘋果','6','28.8'),
    array('豬肉','2','18.8'),
    array('餅干','4','48.8')
  );
  //print_r($products);
  //將 $products 第一條元素取出來
  //print_r($products[2]);
  //數組裡的數組
  echo "|".$products[0][0]."|".$products[0][1]."|".$products[0][2]."|<br />";
  echo "|".$products[1][0]."|".$products[1][1]."|".$products[1][2]."|<br />";
  echo "|".$products[2][0]."|".$products[2][1]."|".$products[2][2]."|<br />";
?>

Demo15.php

<?php
  //創建一個單一的數組
  $products = array(
    array('蘋果','6','28.8'),
    array('豬肉','2','18.8'),
    array('餅干','4','48.8')
  );
  //首先要求出外面數組的長度
  //echo count($products);
  for($i=0; $i<count($products);$i++){
    for($j=0;$j<count($products[$i]);$j++){
      echo '|'.$products[$i][$j];
    }
    echo "|<br/>";
  }
  /*
   * |蘋果|6|28.8|
   * |豬肉|2|18.8|
   * |餅干|4|48.8|
   * **/
?>

Demo16.php

<?php
  //創建一個單一的數組
  $products = array(
    array('產品'=>'蘋果','數量'=>'6','價格'=>'28.8'),
    array('產品'=>'豬肉','數量'=>'3','價格'=>'25.8'),
    array('產品'=>'餅干','數量'=>'2','價格'=>'26.8')
  );
  //print_r($products)  ;
// for($i=0;$i<count($products);$i++){
//   foreach ($products[$i] as $key => $value){
//     echo $key.'--'.$value.'|';
//   }
//   echo '<br/>';
// }
  for($i=0;$i<count($products);$i++){
    while (!!list($key,$value)=each($products[$i])){
      echo $key.'--'.$value.'|';
    }
    echo '<br/>';
  }
  /**
   * 產品--蘋果|數量--6|價格--28.8|
   * 產品--豬肉|數量--3|價格--25.8|
   * 產品--餅干|數量--2|價格--26.8|
   * */
?>

Demo17.php

<?php
// //sort -- 對數組排序
// $fruit = array('banner','orange','apple');
// //沒有排序前,一般是按照 key 的順序進行顯示
// //print_r($fruit);
// //排序之後
// sort($fruit);
// print_r($fruit);
  $numbers = array(45,44,27,574,241,7,45,1,5,2,4,5);
  print_r($numbers);
  rsort($numbers);
  echo '<br/>';
  print_r($numbers);
  //按照數字的話,要看整體的數字的大小,按照字符串的話,只看第一位大小
// $numbers = array(2,12,3);
// sort($numbers,SORT_NUMERIC);
// print_r($numbers);Array ( [0] => 2 [1] => 3 [2] => 12 )
// $numbers = array(2,12,3);
// sort($numbers,SORT_STRING);
// print_r($numbers);//Array ( [0] => 12 [1] => 2 [2] => 3 )
?>

Demo18.php

<?php
//asort -- 對數組進行排序並保持索引關系
  $fruit = array('banner','orange','apple');
// sort($fruit);
// print_r($fruit);
  //Array ( [0] => apple [1] => banner [2] => orange )
  asort($fruit);
  print_r($fruit);
  //Array ( [2] => apple [0] => banner [1] => orange )
?>

Demo19.php

<?php
  $fruit = array('b'=>'banner','o'=>'orange','a'=>'apple');
  //ksort -- 對數組按照鍵名排序
  ksort($fruit)  ;
  print_r($fruit);
  //Array ( [a] => apple [b] => banner [o] => orange )
?>

Demo20.php

<?php
  //echo '<img src="images/mm1.jpg" />';
  //創建一個數組
  $pic = array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');
  //數組進行隨機打亂
  //shuffle($pic);
  //多數組進行反向排序,array 打頭的函數,一般會創建一個新數組
  $a = array_reverse($pic);
  for($i=0;$i<3;$i++){
    echo '<img src="images/'.$a[$i].'" style="margin:10px;" />';
    echo "\n";
  }
?>

Demo21.php

<?php
  $userName = array('張三');
  print_r($userName);
  //這個函數的返回值將得到 ,目前數組的元素個數
  //array_unshift -- 在數組開頭插入一個或多個單元
  //在開頭插入數據
  array_unshift($userName,'李四')  ;
  //在結尾插入數據
  array_push($userName,'吳者然');
  //刪除開頭的元素
  array_shift($userName);
  //刪除結尾的元素
  array_pop($userName);
  print_r($userName);
?>

Demo22.php

<?php
  $fruit = array('banner','orange','apple');
  //這個函數用來獲取一個數組中的鍵(key)
  //第二個參數表明隨即獲取幾個
// $a = array_rand($fruit,1);
// echo $fruit[$a];
  $a = array_rand($fruit,2);
  echo $fruit[$a[0]].' '.$fruit[$a[1]];
?>

Demo23.php

<?php
  $username = array('世'=>'何開','血'=>'趙血兒','學'=>'墨學之');
  //默認情況下,指針在第一條數據
  //獲取指針的當前元素,current 並沒有將指針移到下一步
// echo current($username);
// echo current($username);
// echo current($username);
// echo next($username);
// echo current($username);
// echo next($username);
// echo current($username);
// //reset -- 將數組的內部指針指向第一個單元
// echo reset($username);
// echo sizeof($username);//count
  $numbers = array(1,4,5,656,7,5,7,4,7,4,5,7);
  //array_count_values -- 統計數組中所有的值出現的次數
  print_r(array_count_values($numbers));
?>

Demo24.php

<?php
  $a=$b=$c='';
  $fruits = array('a'=>'apple','b'=>'banner','c'=>'orange');
  //通過標量函數將字符串鍵(key)設置成變量,然後將值賦給了這個變量
  extract($fruits);
  echo $a;
  echo $c;
  echo $b;
  //appleorangebanner
?>

更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《PHP網絡編程技巧總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved