博主信息
博文 30
粉丝 0
评论 2
访问量 37792
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP 数组的定义与访问、数组的遍历
司马青衫
原创
975人浏览过

PHP 数组的定义与访问、数组的遍历

PHP 数组的定义与访问

  • php 数组分为:索引数组与关联数组两种
    • 索引数组的键名默认从 0 开始逐项加 1 可以不写
    • 索引数组的值通过索引序号来访问
    • 关联数组的键名为自定义的字符串
    • 关联数组的值通过自定义的键名来访问
  1. <?php
  2. //数组的定义
  3. //1.索引数组
  4. $names = ['张三','李四','王五'];
  5. //索引数组的访问
  6. echo $names[0].'&nbsp;'.$names[1].'&nbsp;'.$names[2].'&nbsp;'.'<br>';
  7. //2.关联数组
  8. $msg = ['id'=>001,'name'=>'张三','age'=>20];
  9. //关联数组的访问
  10. echo $msg['id'].'&nbsp;'.$msg['name'].'&nbsp;'.$msg['age'].'&nbsp;'.'<br>';

PHP 数组的创建

  • 使用追加的方式添加数组信息
    • 索引数组不用填写键名
    • 关联数组填写键名
  • 多维数组(常用二维数组)
  1. <?php
  2. //数组的创建
  3. //1.索引数组
  4. $car = [];
  5. $car[] = 'Audi';
  6. $car[] = 'BMW';
  7. $car[] = 'Benz';
  8. //打印输出数组信息
  9. printf('<pre>%s</pre>',print_r($car,true));
  10. //2.关联数组
  11. $msg = [];
  12. $msg['brand'] = 'Volvo';
  13. $msg['model'] = 'XC60';
  14. $msg['num'] = 82;
  15. printf('<pre>%s</pre>',print_r($msg,true));
  16. //3.多维数组
  17. $cars = [
  18. ['brand'=>'Volvo', 'model'=>'XC60', 'num' => 82],
  19. ['brand'=>'Audi', 'model'=>'Q5L', 'num' => 88],
  20. ['brand'=>'BMW', 'model'=>'X3', 'num' => 101]
  21. ];
  22. printf('<pre>%s</pre>',print_r($cars,true));
  23. //多维数组的访问
  24. echo $cars[1]['brand'];

PHP 数组的遍历

  • 数组的遍历有四种方式
    • 使用指针
    • 使用 while 循环
    • 使用 for 循环
    • 使用 foreach 遍历
  • list()函数可以用来解析/解构数组
  1. <?php
  2. //数组的遍历
  3. $car = ['brand'=>'Audi', 'model'=>'Q5L', 'price'=>40];
  4. //1.使用指针遍历
  5. //current():获取当前元素的值
  6. //key():获取当前元素的键
  7. printf('%s => %s <br>', key($car), current($car));
  8. next($car); //next():指针往下一个移动
  9. printf('%s => %s <br>', key($car), current($car));
  10. prev($car); //prev():指针往上一个移动
  11. printf('%s => %s <br>', key($car), current($car));
  12. reset($car); //reset():指针复位 指针移到最开始位置
  13. printf('%s => %s <br>', key($car), current($car));
  14. end($car); //end():指针移到最末尾位置
  15. printf('%s => %s <br>', key($car), current($car));
  16. //2.使用while遍历
  17. echo '<hr>';
  18. reset($car); //reset():指针复位 指针移到最开始位置
  19. while(true){ //进入while循环
  20. printf('%s => %s <br>', key($car), current($car));
  21. if(next($car)) continue; //指针往下一个移动并判断是否遍历结束
  22. else break;
  23. }
  24. //3.使用for遍历
  25. echo '<hr>';
  26. reset($car); //reset():指针复位 指针移到最开始位置
  27. for($i = 0; $i < count($car); $i++){
  28. printf('%s => %s <br>', key($car), current($car));
  29. next($car); //指针往下一个移动
  30. }
  31. //4.使用foreach遍历
  32. //遍历索引数组
  33. echo '<hr>';
  34. $arr = ['hello', 'world'];
  35. foreach($arr as $value){
  36. echo $value;
  37. }
  38. //遍历关联数组
  39. echo '<hr>';
  40. foreach($car as $msg => $value){
  41. printf('%s => %s <br>', $msg, $value);
  42. }
  43. //5.使用list函数解构解析数组
  44. echo '<hr>';
  45. list('brand'=>$brand, 'model'=>$model, 'price'=>$price) = $car;
  46. echo "brand => {$brand} <br>","model => {$model} <br>","price => {$price} <br>";
  47. //使用foreach+list解析二维数组
  48. echo '<hr>';
  49. $cars = [
  50. ['brand'=>'Volvo', 'model'=>'XC60', 'price' => 39],
  51. ['brand'=>'Audi', 'model'=>'Q5L', 'price' => 41],
  52. ['brand'=>'BMW', 'model'=>'X3', 'price' => 38]
  53. ];
  54. foreach($cars as list('brand'=>$brand, 'model'=>$model, 'price'=>$price)){
  55. echo "brand => {$brand} <br>","model => {$model} <br>","price => {$price} <br>";
  56. }

  • 使用 foreach 不需要指针复位、不需要手动移动指针 自动后移
  • foreachwhilefor 语句更适合遍历数组
  • 使用list函数能直接将一组数组赋值成一堆变量
批改老师:GuanhuiGuanhui

批改状态:合格

老师批语:写的不错,list这个是一个语法糖,只要灵活运用,可以使代码变简洁,而且很优雅。
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学