博客列表 >数组的定义与访问遍历、指针、for/whie,foreach,list示例

数组的定义与访问遍历、指针、for/whie,foreach,list示例

零龙
零龙原创
2020年07月14日 12:10:24782浏览

数组按键名类型分为

  1. 索引数组
    键名默认是从零顺序递增的整数
    可自定义键名,如果重复,后面覆盖前面的
    索引数组示例
  1. //数组是键值对的有序集合
  2. //数组的键名,必须是整数或者字符串,如果不是,将会自动转化为这两张类型
  3. //创建一个索引数组
  4. //1.默认索引数组:键名是从0开始递增
  5. $arr=['html','css','js','php'];
  6. print_r($arr);
  7. echo "<hr>";
  8. $arr=['html',3=>'css','js','php'];
  9. print_r($arr);
  10. //示例中在3定义了键值从3—5递增
  11. echo "<hr>";
  12. $arr=['html',2.8=>'css','js','php'];
  13. print_r($arr);
  14. //示例中设置了小数,按整数递增
  15. echo "<hr>";
  16. $arr=['html',false=>'css','js','php'];
  17. print_r($arr);
  18. //示例中设置false转化为0,键名相同,后面的值覆盖前面的值
  19. echo "<hr>";
  20. $arr=['html',true=>'css','js','php'];
  21. print_r($arr);
  22. //示例中设置true转化为1,键名相同。
  • 示例图
  1. 关联数组
    键名是字符串,用引号包装
    如果重复,后面覆盖前面
  1. // 关联数组:键名是自定义的字符串
  2. $arr=['usernmae'=>'ynllw','age'=>18,'sex'=>'male'];
  3. echo '<pre>';
  4. print_r($arr);
  5. echo '</pre>';
  • 示例图

数组的创建与访问:

3种创建方法与2种访问方式

创建

  1. 初始化创建
  2. 直接给元素赋值创建
  3. 先声明空数组,再添加

    访问

  4. 整体访问:print_r($array),var_dump($array)
  5. 逐个访问:echo $array[$key],var_dump($array[$key],可同时访问多个)

    数组指针

  6. current():获取指针当前位置的元素的值
  7. key():获取指针当前元素的键名(索引)
  8. next():指针移动到下一个元素
  9. prev():指针移动到上一个元素
  10. end():指针移动到最后一个元素
  11. reset():指针复位到第一个元素
  1. //创建空数组,在赋值
  2. $arr=[];
  3. $arr[0]='html';
  4. $arr[1]='css';
  5. $arr[2]='js';
  6. $arr[3]='php';
  7. print_r($arr);
  8. echo "<hr>";
  9. //数组的访问
  10. echo $arr[2]."<br>";
  11. //数组的指针
  12. echo '当前元素是:'.key($arr).'=>'.current($arr).'<br>';
  13. next($arr); //指针下移一位
  14. echo '当前元素是:'.key($arr).'=>'.current($arr).'<br>';
  15. prev($arr); //指针上移一位
  16. echo '当前元素是:'.key($arr).'=>'.current($arr).'<br>';
  17. end($arr);// 指针移动到最后一个元素
  18. echo '当前元素是:'.key($arr).'=>'.current($arr).'<br>';
  19. reset($arr);// 指针复位到第一个元素
  20. echo '当前元素是:'.key($arr).'=>'.current($arr).'<br>';
  • 示例图

数组的遍历

  1. for循环
  2. while循环
  3. foreach循环
  4. list与each函数配合
  5. 遍历方式的选择

遍历数组示例

  1. // for循环
  2. $arr = range(1,5); // 生成一个1-10的索引数组
  3. for($i=0;$i<count($arr);$i++)
  4. {
  5. echo $i."=>".$arr[$i].'<br>';
  6. }
  7. unset($arr);
  8. unset($i);
  9. //关联数组遍历
  10. $arr = ['name'=>'ynll','age'=>23,'sex'=>'男'];
  11. for($i=0;$i<count($arr);$i++)
  12. {
  13. echo key($arr)."=>".current($arr).'<br>';
  14. next($arr);
  15. }
  16. echo "<hr>";
  17. //while循环
  18. $arr1= range(1,5);
  19. $i=0;
  20. while($i<count($arr1))
  21. {
  22. echo $i."=>".$arr1[$i].'<br>';
  23. $i++;
  24. }
  25. unset($i);
  26. $arr2 = ['name'=>'ynll','age'=>23,'sex'=>'男'];
  27. $i=0;
  28. while(current($arr2)) //获取指针在数组位置
  29. {
  30. echo key($arr2)."=>".current($arr2).'<br>';
  31. next($arr2);
  32. }
  33. echo "<hr>";
  34. //foreach 循环
  35. $arr3 = range(1,5);
  36. foreach($arr3 as $key =>$value)
  37. {
  38. echo $key.'=>' .$value.'<br>';
  39. }
  40. $arr4 = [];
  41. $arr4[] = ['id'=>'110','name'=>'孙悟空','age'=>58];
  42. $arr4[] = ['id'=>'111','name'=>'唐三藏','age'=>98];
  43. $arr4[] = ['id'=>'112','name'=>'猪八戒','age'=>78];
  44. $arr4[] = ['id'=>'113','name'=>'沙和尚','age'=>68];
  45. foreach($arr4 as $users)
  46. {
  47. foreach($users as $key =>$value)
  48. {
  49. echo $key.'=>'.$value.'<br>';
  50. }
  51. }
  52. echo "<hr>";
  53. //list each 循环
  54. list($a,$b,$c) = [100,300,500];
  55. echo $a, $b, $c;
  56. echo "<br>";
  57. //解析索引数组
  58. $arr5=['id'=>'110','name'=>'孙悟空','age'=>58];
  59. list('id'=>$id,'name'=>$name,'age'=>$age) = ['id'=>'110','name'=>'孙悟空','age'=>58];
  60. echo 'id=>',$id,'<br>name=>',$name, '<br>age=>',$age;
  61. echo "<br>";
  62. foreach($arr4 as list('id'=>$id,'name'=>$name,'age'=>$age))
  63. {
  64. printf('id = %s,姓名= %s,年龄:%s<br>',$id,$name,$age);
  65. }

示例图

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议