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

[经验分享] PHP数组简介

[复制链接]

尚未签到

发表于 2018-12-13 12:22:47 | 显示全部楼层 |阅读模式
  一.PHP数组的分类
  按照下标的不同,PHP中的数组分为关联数组和索引数组:
索引数组:下标从0开始,依次增长。
$arr=[1,2,3,4,5];  关联数组:下标为字符串格式,每个下标字符串与数组的值一一关联对应。(有点像对象的键值对)
1
$arr=["a"=>1;"b"=>2;"c"=>3];
  注:[]声明在5.4版本之后才能使用。
  二.关于关联数组和索引数组
  1、数组中,可以同时存在索引数组和关联数组
  array(1,2,3,"four"=>4);  2、数组中,所有的索引数组,如果不加指定,会去掉关联项,默认增长(即关联数组不占索引位)
array(1,2,3,"four"=>4,5,6);  1,2,3,5,6的索引分别为0 1 2 3 4。
3、如果关联数组的key,是纯十进制整数字符串,则会将此数字转为索引数组的索引值
array(1,2,3,"9"=>4);  1 2 3 4 的索引分别为 0 1 2 9。
4、如果手动指定关联数组的key,索引数组的下标,如果与前面已有的key或下标重复,则后指定的值会覆盖之前的值
array(1,2,"one"=>5,"one"=>6)  打印数组为  1 2 "one"=>6。
5、如果手动指定索引数组下标,则后续自增长下标,会按照之前下标最大值,依次增长
array(1,2,3,"9"=>4,5);  1 2 3 4 5 的索引分别为 0 1 2 9 10。
  三.数组的遍历
  1、使用for循环遍历数组
count($arr);用于统计数组元素的个数
for循环只能用于遍历纯索引数组
如果存在关联数组,count统计时,会统计两种数组的总个数,使用for循环遍历混合数组,将导致数组越界!
$arr=[1,2,3,4,5];for($i=0;$i5,"one"=>6];foreach($arr as $key=>$value){        echo "这是key:{$key}";        echo "这是value:{$value}";
}  3.使用list() each() while遍历数组
  list(); 用于将数组的每一个值,赋值给list函数的每一个参数。(list函数的参数,必须小于等于数组的元素个数)
  注意:
  list()在解析数组时,只解析索引数组,不能取出关联项。
  list()可以通过空参数,选择性的解析数组的值;
  each();用于返回数组当前指针所在位的键值对,并将指针后移一位,
  返回值:一个数组。包含一个索引数组(0 键 1 值)和一个关联数组("key" 键 "value" 值)。
while(list($key,$value) = each($arr)){    echo "{$key} {$value}";
} reset($arr);  注意:数组使用each遍历完一遍后,指针始终处于最后一位的下一位,即再用each,始终返回false,如果还需使用,需用reset()函数,重置数组指针。
  4、使用数组指针遍历数组
  next():将数组指针后移一位,并返回后一位的值,没有返回false。
  prev():将数组指针前移一位,并返回前一位的值,没有返回false。
  end():将数组的指针直接移至最后一位,并返回最后一位的值,空数组返回false。
  reset():重置数组指针,恢复至第一位,并返回第一位的值,空数组返回false。
  key():返回当前指针所在位的键,如果数组为空或指针指到最后,返回null。
  current():返回当前指针所在位的值,如果数组为空或指针指到最后,返回false。

$arr=[1,2,false,3,4,5];while (true) {    echo key($arr);    echo"---";    echo current($arr)."";    if(!next($arr)&&key($arr)===null)        break;        
    }
}

  





运维网声明 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-650944-1-1.html 上篇帖子: php 初学 下篇帖子: php判断本周,上周与上上周的日期
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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