PHP自学之路-----走进数组及相关数组函数

PHP数组:

     数组时一组关键字和值得集合,值可以是任何一种类型;看下面简单的入门案例:

[php] view plain copy
 
 print?
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3.  <head>  
  4.   <title> 数组入门 </title>  
  5.   <meta http-equiv="content-type"  content="text/html;charset=utf-8">  
  6.  </head>  
  7.  <body>  
  8.  <?php  
  9.     $hens[0]=3;  
  10.     $hens[1]=5;  
  11.     $hens[2]=2.5;  
  12.     $hens[3]=4;  
  13.     $hens[4]=3.5;  
  14.     $hens[5]=17;  
  15.   
  16.     //为了计算数组元素的个数,使用系统函数count;  
  17.     echo "最共有".count($hens)." 只鸡<br/>";  
  18.     $allwight=0;  
  19.     for($i=0;$i<count($hens);$i++){  
  20.         echo "第".$i."只鸡重量".$hens[$i]."<br/>";  
  21.         $allwight+=$hens[$i];  
  22.     }  
  23.   
  24.     echo "最重量为:".$allwight.";平均重量为:".$allwight/count($hens);  
  25.  ?>  
  26.     
  27.  </body>  
  28. </html>  
[plain] view plain copy
 
 print?
  1. 最共有6 只鸡  
  2. 第0只鸡重量3  
  3. 第1只鸡重量5  
  4. 第2只鸡重量2.5  
  5. 第3只鸡重量4  
  6. 第4只鸡重量3.5  
  7. 第5只鸡重量17  
  8. 最重量为:35;平均重量为:5.8333333333333  
  • 创建数组

创建数组的方式很多,上面例子是最普通的一种方式。

在PHP数组中,每一个元素的值可以是任意的类型!

第二种方式:

$arr= array(1,90,"hello",null);

第三种方式创建数组

 $arr["logo"] ="beijing";$arr["hsp"]=124;$arr[4]=678;

等同于下面的: 

$arr=array("logo"=>"beijing","hsp"=>123,4=>678); 

遍历方式:

 foreach($arr as $key=>$val){

     echo $key."=".$var."<br/>";

}

 第三种方式 指定数组不能用for循环访问,应该用上面的方式遍历。

[php] view plain copy
 
 print?
  1. //数组注意事项:  
  2. //我们在创建数组的时候,如果没有给某个元素制定下标,PHP会自动的用目前最大的那个下标值(整数),加上1作为该元素的下标。  
  3. $arr=array(5=>"logo",55,56);  
  4. $arr=array(5=>"logo",6=>55,7=>56);  


 

  • 数组的一些应用
[php] view plain copy
 
 print?
  1.   <?php  
  2. // 创建一个简单的数组  
  3.     $array = array(1, 2, 3, 4, 5);  
  4.     print_r($array);  
  5.     echo "<br/>";  
  6.   
  7. // 现在删除其中的所有单元,但保持数组本身的结构  
  8.     foreach ($array as $i => $value) {  
  9.         unset($array[$i]);  
  10.    }  
  11.    print_r($array);  
  12.    echo "<br/>";  
  13.   
  14.   // 添加一个单元(注意新的键名是 5,而不是你可能以为的 0)  
  15.   $array[] = 6;  
  16.   print_r($array);  
  17.   echo "<br/>";  
  18.   
  19. // 重新索引:  
  20. $array = array_values($array);  
  21. $array[] = 7;  
  22. print_r($array);  
  23. echo "<br/>";  
  24. var_dump($array);  
  25. ?>    
[plain] view plain copy
 
 print?
  1. 执行结果:  
[plain] view plain copy
 
 print?
  1. Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )   
  2. Array ( )   
  3. Array ( [5] => 6 )   
  4. Array ( [0] => 6 [1] => 7 )   
  5. array(2) { [0]=> int(6) [1]=> int(7) }  

 

  • PHP相关的常用函数

1、count 

    统计数组元素的个数,使用:count($arr);

2、is-array

   判断是否为数组,is_array($arr);

3、print_r 和var_dump(可显示数组元素类型)

    显示数组信息

4、explode(在实际开发中,用途比较大)

   拆分字符串函数。explode(“按照什么拆分”,字符串)

5、foreach 

    数组遍历函数:

  

[plain] view plain copy
 
 print?
  1.  foreach($arr as $key=>$val){  
  2.   
  3.      echo $key."=".$var."<br/>";  
  4.   
  5. }  

6、unset 

  unset()删除数组中的某个元素,但是不会重组索引。前面的例子已经说明!

7、array_values 

    重新索引,一般和上面的函数配合使用!具体看什么的例子

  • 数组比较 

  

[php] view plain copy
 
 print?
  1. <?php  
  2. $a = array("a" => "apple", "b" => "banana");  
  3. $b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");  
  4.   
  5. $c = $a + $b; // Union of $a and $b  
  6. echo "Union of \$a and \$b: \n";  
  7. var_dump($c);  
  8.   
  9. $c = $b + $a; // Union of $b and $a  
  10. echo "Union of \$b and \$a: \n";  
  11. var_dump($c);  
  12. ?>   
[plain] view plain copy
 
 print?
  1. Union of $a and $b:  
  2. array(3) {  
  3.   ["a"]=>  
  4.   string(5) "apple"  
  5.   ["b"]=>  
  6.   string(6) "banana"  
  7.   ["c"]=>  
  8.   string(6) "cherry"  
  9. }  
  10. Union of $b and $a:  
  11. array(3) {  
  12.   ["a"]=>  
  13.   string(4) "pear"  
  14.   ["b"]=>  
  15.   string(10) "strawberry"  
  16.   ["c"]=>  
  17.   string(6) "cherry"  
  18. }   

 

[php] view plain copy
 
 print?
  1. 比较数组  
  2.   
  3. <?php  
  4. $a = array("apple", "banana");  
  5. $b = array(1 => "banana", "0" => "apple");  
  6.   
  7. var_dump($a == $b); // bool(true)  
  8. var_dump($a === $b); // bool(false)  
  9. ?>    

 

[php] view plain copy
 
 print?
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3.  <head>  
  4.   <title> 综合案例 </title>  
  5.   <meta http-equiv="content-type"  content="text/html;charset=utf-8">  
  6.  </head>  
  7.   
  8.  <body>  
  9.   
  10.   <?php  
  11.   //error_reporting(E_ALL^E_NOTICE);  
  12.      $aar=$_REQUEST["grade"];  
  13.      $arr=explode(",",$aar);  
  14.      $allval=0;  
  15.      foreach($arr as $val){  
  16.          $allval+=$val;  
  17.      }  
  18.  ?>  
  19.  <h1>请输入学员的成绩,用逗号隔开</h1>  
  20.  <form action="array03.php" method="post">  
  21.    <input type="text" name="grade" value="<?php echo $aar ?>"/>  
  22.    <input type="submit" value="计算平均值"/>  
  23.  </form>  
  24.   
  25.  <?php  
  26.      $aar=$_REQUEST["grade"];  
  27.      $arr=explode(",",$aar);  
  28.      $allval=0;  
  29.      foreach($arr as $val){  
  30.          $allval+=$val;  
  31.      }  
  32.  ?>  
  33.  <?php  
  34.      echo "平均值:".round($allval/count($arr),2);  
  35.  ?>  
  36.     
  37.  </body>  
  38. </html>  




 
 


 二维数组:

在内存中分布情况举例:
[php] view plain copy
 
 print?
  1. <?php  
  2.    //二维数组  
  3.    /* 0 0 0 
  4.       1 2 3 
  5.       4 5 6 
  6.     */  
  7.    $arr = array(array(0,0,0),array(1,2,3),array(4,5,6));  
  8.   
  9.    for($i=0;$i<count($arr);$i++){  
  10.         for($j=0;$j<count($arr[$i]);$j++){  
  11.             echo $arr[$i][$j]." ";  
  12.         }  
  13.         echo "<br/>";  
  14.    }  
  15.   
  16. ?>  
posted @ 2016-12-29 11:28  天涯海角路  阅读(109)  评论(0)    收藏  举报