第3章 使用数组

1.创建、初始化数组: $products=array(‘Tires’,’Oil’,’Spark Plugs’); 

                                    //array()和echo一样 是一个语言结果

                                    $numbers=range(1,10,2);  //range()函数升序创建1-10的差值为2的数字数组

                                    $letters=range(‘a’,’z’);   //range()也可对字符进行操作

2.PHP中数组的大小会根据所增加元素的多少进行动态变化;

    如:$products[0]=’Tres’;   //若$products数组并不存在,此代码将创建一个只有一个元素的数组

3.循环访问数组:for();   或者 foreach();   //foreach($products as $current){ echo $current.” “; }

4.关联数组:有点像map;

    - 创建: $prices=array(‘Tires’=>100,’oil’=>10);   //符号=>是关键字和值之间的连接符

                 $prices[‘Spark Plugs’]=4;

    - 访问:$val=$prices[‘Oil’];

    - 循环:① foreach($prices as $key=>$value){ echo $key.” – “.$value.”<br />”; }

                 ②while($ele=each($prices){ echo $ele[‘key’].” – “.$ele[‘value’].”<br />”; }

                 ③reset($prices);

                     while(list($product,$price)=each($prices)){ echo “$product – $price<br />”; }

                     //使用each()函数时,数组会记录当前元素

                     //使用reset()函数将当前元素重新设置到数组开始处

5.排序:

  (一)升序:

       ①sort();   普通一维数组排序,第二个参数:SORT_REGULAR(默认) 、SORT_NUMERIC(数值) 、SORT_STRING(字符串) 指定排序类型;

       ②asort();   按元素值排序;

       ③ksort();   按关键字排序;

  (二)降序:

        对应:rsort()  arsort()  krsort()

  (三)自定义排序:

        usort($products,’compare’); 

        //$products是被排序的数组,compare是用户定义的排序函数 function compare(…){ … }

  (四)重新排序:

        ①shuffle();  将数组各元素进行随机排序

        ②array_reverse();   返回数组的反向数组(注意:返回的是原数组修改后的副本,可以选择覆盖原版本或不覆盖)

            //array_push()函数将新元素添加到数组末尾,array_pop()函数删除并返回数组末尾元素

6.其他数组操作:

   ①current() 返回当前元素的值(pos()函数是其别名);

   ②next() & each()  都使指针前移一个元素,但each()在指针前移前返回当前元素,next()则将指针前移再返回新的当前元素;

   ③prev()  与next()相反,将指针回移一个位置再返回新的当前元素;

   ④reset() & end()  前者返回指向数组首元素的指针,后者返回指向数组末尾的指针;

7.array_walk(arr,func,[userdata]); 

   func(value,key,userdata);

   对arr的每一个元素都应用函数func,第三个参数用来传递函数func所带参数userdata;

   //当希望修改数组内容时,value用按引用方式传递(&)

8.统计数组元素个数:

      count() & sizeof()  统计数组中的元素个数;

      array_count_values($arr);   返回一个数组,数组的关键字为$arr的元素值,数组的值为对应关键字在$arr中出现过的次数

9.提取数组元素,转换成一系列变量:

     $array=array(‘key1’=>’value1’,’key2’=>’value2’);

     extract($array);

     echo “$key1 $key2”;  //将数组关键字转成变量名,关键字对应值作为转换后的变量值

     将输出:value1 value2 value3

    * 该函数还有两个可选参数extract_type和prefix,extract_type告诉extract()如何处理冲突

       最常用的值是:EXTR_OVERWRITE(默认值,冲突时覆盖已有变量)、

                                EXTR_PREFIX_ALL(在所有变量名称前加上由prefix参数指定的值);

                      如:

                           $array=array(‘key1’=>’value1’,’key2’=>’value2’);

                           extract($array,EXTR_PREFIX_ALL,’my_prefix’);

                           echo “$my_prefix_key1 $my_prefix_key2”;

10.补充:explode(“\t”,$orders[$i]); 以\t制表符作为定界符分割传入的字符串

               intval() 可将一个字符串转换成一个整数

posted @ 2016-09-05 12:31  &ATM  阅读(257)  评论(0编辑  收藏  举报
……