• php数组相关


      1 //数组的创建
      2   //1 
      3    $usernames = array('李彦宏','周宏伟','马云','俞敏洪','李开复');
      4   echo $usernames;  //array,打印类型
      5   echo '<br />';
      6   echo $usernames[1];
      7   echo '<br />';
      8   print_r($usernames);//print_r()打印变量的信息
      9   
     10   //2 通过range()函数自动创建一个数组
     11   $numbers = range(1, 10);
     12   $letters = range('a', 'z');
     13   $numbers2 = range(1, 10, 2); //第三个参数表示步长
     14   
     15   print_r($numbers);
     16   echo '<br />';
     17   print_r($letters);
     18   echo '<br />';
     19   print_r($numbers2); //1 3 5 7 9
     20   
     21   
     22   //循环打印数组
     23   //for循环,count()获得数组长度,这种必须下标从0开始,且为数字
     24   for($i=0;$i<count($numbers);$i++){
     25       echo '<br />';
     26       echo $numbers[$i];
     27   }
     28   //foreach()打印数组,只能打印数组
     29   if(is_array($numbers)){  //如果是数组
     30       foreach ($numbers as $key=>$value){
     31           echo '<br />';
     32           echo $key.'---'.$value;
     33       }
     34   }
     35   
     36   //3 自定义键数组
     37   $usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
     38 //   print_r($usernamessernames);
     39   $usernames['goggle'] = '李开复';  //追加数组
     40 //   print_r($usernames);
     41   
     42   //直接创建自定义键数组
     43   $userages['党'] = '22';
     44   $userages['周'] = '23';
     45   print_r($userages);
     46   
     47 //  循环打印foreach();each();list();
     48   foreach ($userages as $key=>$value){
     49       echo '<br />';
     50       echo $key."--".$value;
     51   }
     52   
     53 //  $a = each($userages); //返回数组当前键值对(是一个数组)并将数组指针向前移动一步
     54 //   echo $a[0].'--'.$a[1];
     55   
     56   while (!!$a=each($userages)){  //!!转化为布尔值,如果值存在返回1
     57       echo $a[0].'--'.$a[1].'<br />';
     58       //echo $a['key'].'--'.$a['value'].'<br />';
     59   }
     60   
     61 //   $a = array('a','b','c');  //list()只能识别数字下标
     62 //   list($var1,$var2)=$a;  //list($var1,$var2)就是将$var1='a',$var2='b'
     63 //   echo $var2;  //b
     64   
     65   list($name,$age)=each($userages);
     66   echo $name.'---'.$age.'<br />';
     67   
     68   
     69   //reset();将数组的指针指向第一个单元上,可以对each()指针操作
     70   //$a = array_unique();创建一个新数组,新数组移除原数组中重复的值,原数组不动
     71   //array_flip();对调数组中的键和值,不会改变本体,而是返回新数组,同上
     72   
     73   
     74   //4 数组里的数组:二维数组
     75   $products=array(
     76       array('苹果',1),
     77       array('橘子',2),
     78       array('栗子',3)
     79   );
     80 //   print_r($products);
     81   //双重循环打印数组
     82 //   echo count($products); //3
     83   for ($i=0;$i<count($products);++$i){
     84       for ($j=0;$j<count($products[$i]);++$j){
     85          echo $products[$i][$j].'|'; 
     86       }
     87       echo '<br />';
     88   }
     89   
     90   //双重循环打印二维数组
     91   $products=array(
     92       array('产品名'=>'苹果','数量'=>1),
     93       array('产品名'=>'苹果','数量'=>1),
     94       array('产品名'=>'苹果','数量'=>1)
     95   );
     96   
     97   for ($i=0;$i<count($products);++$i){
     98       foreach ($products[$i] as $key=>$value){
     99          echo $key.'--'.$value.'|'; 
    100       }
    101       echo '<br />';
    102   }
    103   
    104   for ($i=0;$i<count($products);++$i){
    105       while (!!list($key,$value)=each($products[$i])){
    106          echo $key.'--'.$value.'|'; 
    107       }
    108       echo '<br />';
    109   }
    110   
    111   
    112   //5 数组排序
    113   $fruit = array('banner','orange','apple');
    114   
    115   //sort();
    116   sort($fruit);
    117   print_r($fruit); //a b o,中文也可以的
    118   
    119   
    120   $numbers = array(2,3,4,5,6);
    121   sort($numbers);
    122   print_r($numbers);
    123   
    124   //sort()函数的第二个参数是可选的。这个可选参数可以传递SORT_REGULAR(默认值)、SORT_NUMERIC或SORT_STRING。指定排序类型的功能是非常有用的。比如,当要比较可能包含有数字2和12的字符串时,从数字角度看,2要小于12,但是作为字符串,"12"却要小于"2"。
    125   $numbers = array("12","2");
    126   sort($numbers,SORT_STRING);//按字符串排序
    127   print_r($numbers);
    128   
    129   //asort(),保留索引关系
    130   $fruit = array('banner','orange','apple');
    131   asort($fruit);
    132   print_r($fruit);
    133   
    134   //ksort(),对键排序
    135   $fruit = array('b'=>'banner','a'=>'orange','c'=>'apple');
    136   ksort($fruit);
    137   print_r($fruit);
    138   
    139   //反向排序,在前边的前边加r
    140   $numbers = array(2,3,4,5,6);
    141   rsort($numbers);
    142   print_r($numbers);
    143   
    144   shuffle();随机排序
    145   $pic = array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');
    146   shuffle($pic); //随机打乱数组
    147   for ($i=0;$i<count($pic)-2;++$i){
    148       echo '<img src="images/'.$pic[$i].'" style="margin:10px;" />';
    149       echo "
    ";
    150   }
    151   
    152   //把数组反方向,一般array开头的不会改变原数组,生成新的数组
    153   $a = array_reverse($pic);
    154   print_r($a);
    155   
    156   //6 添加函数
    157   $username = array("dang");
    158   //array_unshift();开头插入元素,插入成功返回int
    159   array_unshift($username, 'zhou');
    160   print_r($username);
    161   //array_push();//结尾插入数据
    162   array_push($username,'haha');
    163   print_r($username);
    164   
    165   //  删除数组元素
    166   array_shift($array); 删除开头元素
    167   array_pop();删除结尾元素
    168 
    169   array_rand();随机取出数组中一个或多个键,多个返回的是数组
    170   $fruit = array('banner','orange','apple');
    171   $a = array_rand($fruit,1);
    172   echo $fruit[$a];
    173   
    174   
    175   //7 数组指针的操作
    176 //   在数组中浏览:each()、current()、reset()、end()、next()、pos()、prev();
    177 //   调用next()或each()将使指针前移一个元素。调用each($array_name)会在指针前移一个位置之前返回当前元素。next()函数则有些不同----调用next($array_name)是将指针前移,然后再返回新的当前元素。
    178 //   要反向遍历一个数组,可以使用end()和prev()函数。prev()函数和next()函数相反。它是将当前指针往回移一个位置然后再返回新的当前元素。
    179   $fruit = array('banner','orange','apple');
    180   $usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
    181   
    182   //current();获取指针的当前元素,current并没有把指针移到下一步
    183   echo current($usernames);
    184   
    185   //next();向后移一位
    186   echo next($usernames);
    187   echo current($usernames);
    188   reset($usernames);  //将指针指向第一个单元
    189   echo current($usernames);
    190   
    191   
    192   $usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
    193   //统计数组个数,sizeof();count();
    194   echo sizeof($usernames);
    195   echo count($usernames);
    196   //array_count_values()统计数组内所有值出现的个数
    197   $a = array(1,2,3,3,3,2,2);
    198   print_r (array_count_values($a));
    199   
    200   //8 将数组转换成标量变量
    201   //对于一个非数字索引数组,而该数组又有许多关键字-值对,可以使用函数extract()将它们转换成一系列的标量变量。
    202   //函数extract()的作用是通过一个数组创建一系列的标量变量,这些变量的名称必须是数组中关键字的名称,而变量值则是数组中的值。
    203   //extract(array var_array,[int extract_type],[string prefix]);
    204   $fruits = array('a'=>'apple','b'=>'banner','c'=>'orange');
    205   extract($fruits);
    206   echo $a; //apple
    207   echo $c; //orange
  • 相关阅读:
    Django-orm-自关联
    Android中像素相关
    Android导入项目工程时报错“ Invalid project description”
    汇编之64位操作系统安装debug.exe
    mygui初探(二)皮肤编辑器
    mygui初探(一)基础
    一种破解静态链接库(.lib)的简单方法
    工作这两年的经验与教训
    3D单机游戏《天鹰教》源码发布(二)
    HUSTOJ的Windows版评判内核(二)
  • 原文地址:https://www.cnblogs.com/xiager/p/6899875.html
Copyright © 2020-2023  润新知