设为首页 收藏本站
查看: 925|回复: 0

[经验分享] php数组的创建及操作

[复制链接]

尚未签到

发表于 2017-12-30 07:41:13 | 显示全部楼层 |阅读模式
//数组的创建  //1
  $usernames = array('李彦宏','周宏伟','马云','俞敏洪','李开复');
  echo $usernames;  //array,打印类型
  echo '<br />';
  echo $usernames[1];
  echo '<br />';
  ($usernames);//print_r()打印变量的信息
  //2 通过range()函数自动创建一个数组
  $numbers = (1, 10);
  $letters = ('a', 'z');
  $numbers2 = (1, 10, 2); //第三个参数表示步长
  ($numbers);
  echo '<br />';
  ($letters);
  echo '<br />';
  ($numbers2); //1 3 5 7 9
  //循环打印数组
  //for循环,count()获得数组长度,这种必须下标从0开始,且为数字
  for($i=0;$i<($numbers);$i++){
  echo '<br />';
  echo $numbers[$i];
  }
  //foreach()打印数组,只能打印数组
  if(($numbers)){  //如果是数组
  foreach ($numbers as $key=>$value){
  echo '<br />';
  echo $key.'---'.$value;
  }
  }
  //3 自定义键数组
  $usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
  
//   print_r($usernamessernames);
  $usernames['goggle'] = '李开复';  //追加数组
  
//   print_r($usernames);
  //直接创建自定义键数组
  $userages['党'] = '22';
  $userages['周'] = '23';
  ($userages);
  
//  循环打印foreach();each();list();
  foreach ($userages as $key=>$value){
  echo '<br />';
  echo $key."--".$value;
  }
  
//  $a = each($userages); //返回数组当前键值对(是一个数组)并将数组指针向前移动一步
  
//   echo $a[0].'--'.$a[1];
  while (!!$a=($userages)){  //!!转化为布尔值,如果值存在返回1
  echo $a[0].'--'.$a[1].'<br />';
  //echo $a['key'].'--'.$a['value'].'<br />';
  
  }
  
//   $a = array('a','b','c');  //list()只能识别数字下标
  
//   list($var1,$var2)=$a;  //list($var1,$var2)就是将$var1='a',$var2='b'
  
//   echo $var2;  //b
  list($name,$age)=($userages);
  echo $name.'---'.$age.'<br />';
  //reset();将数组的指针指向第一个单元上,可以对each()指针操作
  //$a = array_unique();创建一个新数组,新数组移除原数组中重复的值,原数组不动
  //array_flip();对调数组中的键和值,不会改变本体,而是返回新数组,同上
  //4 数组里的数组:二维数组
  $products=array(
  array('苹果',1),
  array('橘子',2),
  array('栗子',3)
  );
  
//   print_r($products);
  //双重循环打印数组
  
//   echo count($products); //3
  for ($i=0;$i<($products);++$i){
  for ($j=0;$j<($products[$i]);++$j){
  echo $products[$i][$j].'|';
  }
  echo '<br />';
  }
  //双重循环打印二维数组
  $products=array(
  array('产品名'=>'苹果','数量'=>1),
  array('产品名'=>'苹果','数量'=>1),
  array('产品名'=>'苹果','数量'=>1)
  );
  for ($i=0;$i<($products);++$i){
  foreach ($products[$i] as $key=>$value){
  echo $key.'--'.$value.'|';
  }
  echo '<br />';
  }
  for ($i=0;$i<($products);++$i){
  while (!!list($key,$value)=($products[$i])){
  echo $key.'--'.$value.'|';
  }
  echo '<br />';
  }
  //5 数组排序
  $fruit = array('banner','orange','apple');
  //sort();
  ($fruit);
  ($fruit); //a b o,中文也可以的
  $numbers = array(2,3,4,5,6);
  ($numbers);
  ($numbers);
  //sort()函数的第二个参数是可选的。这个可选参数可以传递SORT_REGULAR(默认值)、SORT_NUMERIC或SORT_STRING。指定排序类型的功能是非常有用的。比如,当要比较可能包含有数字2和12的字符串时,从数字角度看,2要小于12,但是作为字符串,"12"却要小于"2"。
  $numbers = array("12","2");
  ($numbers,SORT_STRING);//按字符串排序
  ($numbers);
  //asort(),保留索引关系
  $fruit = array('banner','orange','apple');
  ($fruit);
  ($fruit);
  //ksort(),对键排序
  $fruit = array('b'=>'banner','a'=>'orange','c'=>'apple');
  ($fruit);
  ($fruit);
  //反向排序,在前边的前边加r
  $numbers = array(2,3,4,5,6);
  ($numbers);
  ($numbers);
  ();随机排序
  $pic = array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');
  ($pic); //随机打乱数组
  for ($i=0;$i<($pic)-2;++$i){
  echo '<img src="images/'.$pic[$i].'" />';
  echo "\n";
  }
  //把数组反方向,一般array开头的不会改变原数组,生成新的数组
  $a = ($pic);
  ($a);
  //6 添加函数
  $username = array("dang");
  //array_unshift();开头插入元素,插入成功返回int
  ($username, 'zhou');
  ($username);
  //array_push();//结尾插入数据
  ($username,'haha');
  ($username);
  //  删除数组元素
  ($array); 删除开头元素
  ();删除结尾元素
  

  ();随机取出数组中一个或多个键,多个返回的是数组
  $fruit = array('banner','orange','apple');
  $a = ($fruit,1);
  echo $fruit[$a];
  //7 数组指针的操作
  
//   在数组中浏览:each()、current()、reset()、end()、next()、pos()、prev();
  
//   调用next()或each()将使指针前移一个元素。调用each($array_name)会在指针前移一个位置之前返回当前元素。next()函数则有些不同----调用next($array_name)是将指针前移,然后再返回新的当前元素。
  
//   要反向遍历一个数组,可以使用end()和prev()函数。prev()函数和next()函数相反。它是将当前指针往回移一个位置然后再返回新的当前元素。
  $fruit = array('banner','orange','apple');
  $usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
  //current();获取指针的当前元素,current并没有把指针移到下一步
  echo ($usernames);
  //next();向后移一位
  echo ($usernames);
  echo ($usernames);
  ($usernames);  //将指针指向第一个单元
  echo ($usernames);
  $usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
  //统计数组个数,sizeof();count();
  echo ($usernames);
  echo ($usernames);
  //array_count_values()统计数组内所有值出现的个数
  $a = array(1,2,3,3,3,2,2);
  (($a));
  //8 将数组转换成标量变量
  //对于一个非数字索引数组,而该数组又有许多关键字-值对,可以使用函数extract()将它们转换成一系列的标量变量。
  //函数extract()的作用是通过一个数组创建一系列的标量变量,这些变量的名称必须是数组中关键字的名称,而变量值则是数组中的值。
  //extract(array var_array,[int extract_type],[string prefix]);
  $fruits = array('a'=>'apple','b'=>'banner','c'=>'orange');
  ($fruits);
  echo $a; //apple
  echo $c; //orange

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-429573-1-1.html 上篇帖子: PHP中interface与 implements 关键字 下篇帖子: PHP开发工程师
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表