码迷,mamicode.com
首页 > 编程语言 > 详细

php数组

时间:2015-10-15 14:18:53      阅读:464      评论:0      收藏:0      [点我收藏+]

标签:

 一.数组的概念:

      数组可以理解为有序的(键-值)对组成的数据值的集合;
      如果我们把变量理解为单个值的容器,那么数组就是可以包含多个值的容器;
      根据索引值的不同数组分为:索引数组和关联数组;
                  
      $week = array("a"=> "星期一", "b"=>"星期二", "c"=> "星期三");   //a:键    星期一:值
 
  二.创建数组
      1.使用array()函数  array array ( [mixed ...] )
          $arr = array();
          $fruits = array("orange", "apple", "banana");
          $languages = array("en"=> "english", "cn"=> "china");
 
          与其它语言的数组实现方式不同,php不需要在创建数组时指定其大小;
          因为php是一种松散类型的语言,所以甚至不需要在使用前先声明;
          索引可以是整型数字或者是字符串;
          索引数组:索引为整数,如果没有指定索引值则默认为零,依次递增;
          关联数组:索引为字符串的数组;
 
 
      2. 直接对数组变量赋值
          $arr[key] = value;
           
          $fruits[] = "orange";
          $fruits[] = "apple";
          $languages["en"] = "english";
          $languages["cn"] = "china";
 
          如果方括号中没有指定索引,则取当前最大整数索引值,新的键名将是该值 + 1。
          如果当前还没有整数索引,则键名将为0。如果指定的键名已经有值了,该值将被覆盖。
 
      3. 使用函数创建数组
          range() 建立一个包含指定范围单元的数组
 
          $num = range(1, 100);
          print_r($num);
 
          $letter = range(‘a‘,‘I‘);
          print_r($letter);
       
 
  三、删除 数组或数组元素
 
        unset 释放给定的变量
 
        $fruits = array(‘apple‘,‘banana‘, ‘orange‘);
        print_r($fruits);
        unset($fruits[1]);
        print_r($fruits);
        unset($fruits);
 
        注意:删除数组元素不会重建索引;
 
四、常用的数组函数
 
        1.print_r() 打印数组
 
            $today = getdate();
            print_r($today);
 
        2.count() 取得数组大小
 
            count($week); 
 
        3.in_array() 检查数组中是否包含某个值
 
            in_array(‘apple‘, $fruits);
            var_dump(in_array(apple, $fruits));
 
 
 
 
五、遍历数组 for() do{}while() while(){} foreach(){}
     
 
    使用数组指针遍历数组 
      key()
        返回数组当前指针元素的索引;
 
      current()
        返回数组当前指针元素的值;
 
      next()
        将数组指针向前移动一位,并返回当前指针元素的值; 如果超出了数组元素的末尾,则返回FALSE
 
      prev()
        将数组指针往回移动一位, 并返回当前指针元素的值; 如果指针本来就位于数组的第一个位置则返回FALSE;
 
      reset()
        将指针指向第一个元素,并返回第一个元素的值
 
      end()
        将数组指针指向最后一个元素, 并返回最后一个元素的值;
 
      each()
        返回数组当前指针元素的键和值,并将指针推进一个位置;如果内部指针越过了数组的末端,则 each() 返回 FALSE。
 
      list()
        把数组中的值赋给一些变量;
 
 
      $fruits = array(‘apple‘, ‘banana‘, ‘orange‘);
           echo current($fruits);   
           each($fruits);    //使用each()推进指针向前一步 
           echo current($fruits);
           next $fruits);    //也可以使用next() 推进指针向前一步
           echo current($fruits);
           end($fruits);   //将数组指针指向最后一个元素
           print_r(each($fruits));
           list($val1, $val2, $val3) = $fruits;
           echo $val1;
           echo $val2;
           echo $val3;
 
 
 
 
    使用循环语句遍历数组
       
          $fruits = array(‘apple‘, ‘banana‘, ‘orange‘);
           
          //do{}while()
 
          do{
              echo key($fruits). ‘=> ‘.current($fruits);
 
            }while(next($fruits));
 
           
          //while(){}
 
          while($arr = each($fruits)){
            echo $  arr[‘key‘].‘‘.$arr[‘value‘];
          }
 
 
          while(list($key, $value) = each($fruits)){
            echo $key.‘‘.$value;
          }
 
          //for(){}
 
          for($i = 0;$i < count($fruits);$i++){  
              echo "key:".$i."|value:".$fruits[$i];
          }
 
 
          //foreach(){}
 
          $product = array(
          ‘pname‘=> ‘nokia n73‘,
          ‘price‘=> ‘1500‘,
          ‘pubtime‘=> ‘2008‘,
          );
 
          if(is_array($product) && !empty($product)){
            foreach($product as $key=>$value){
                echo $key.‘:‘.$value.‘<br>‘;
            }
          }
 
 
    六、数组排序
 
        1.sort() 、 rsort() 对数组进行升序和降序
 
          $fruits = array("lemon", "orange", "banana", "apple");
          sort($fruits);
          print_r($fruits);
 
        2.ksort()、krsort() 对数组按索引进行升序或降序, 并保持索引关系
 
          $fruits = array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple");
          ksort($fruits);
          print_r($fruits);
     
 
    七、二维数组   数组元素的值也可以是数组;
       
        $result = array(
          array(
             ‘pname‘=> ‘nokia n73‘,
              ‘price‘=>  1500,
          ),
          array(
              ‘pname‘=> ‘nokia 5800‘,
               ‘price‘=>  2000,
          ),
        );
 
 
      遍历二维数组:
 
      foreach($products as $product_k=>$product_v){
        foreach($product_v as $key=>$val){
          echo $key.‘=>‘.$val;
        }
      }
 
 
    八、字符串与数组转换
 
        1.explode() 返回由字符串组成的数组
 
          $str = "1,2,3,4,5,6";
          $arr = explode(‘,‘, $str);
          print_r($arr);
 
        2.implode() 将数组元素连接成字符串
 
          $arr = array(‘a‘,‘b‘, ‘c‘, ‘d‘);
          $str = implode(‘|‘, $arr );
          echo $str;
 
 
 
    练习:
 
        1.新建一个数组的函数为?
          A. array  B. next    C. count D. reset
 
        2.下列说法正确的是?
          A. 数组的下标必须为数字,且从"0"开始
          B. 数组中的元素类型必须一致;
          C. 数组的下标可以是字符串;
          D. 数组的下标必须是连续的;
 
        3. 以下代码运行的结果?
          $week = array(‘Monday‘, ‘Tuesday‘, 3=>‘Wednesday‘);
          echo $week[2];
 
 
 
    4.以下代码运行的结果为?
 
        $arr = array("a"=> 123, "b"=> 456 ; "c"=> 789);
        for($i = 0; $i < count($arr), $i++){
          echo $arr[$i]. "  ";
        }
         
        A. 打印3个空格;
        B. 123  456  789
        C. 提示错误
        D.        (打印6个 )

php数组

标签:

原文地址:http://www.cnblogs.com/jacko/p/4882056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!