博主信息
博文 24
粉丝 1
评论 0
访问量 26927
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP数组的定义访问与遍历
知行合一
原创
1030人浏览过

PHP数组的定义

以下都是创建/定义一个数组的方式

一维数组

  1. $goods=['J20','战斗机',9999];
  1. $goods=[0=>'J20',1=>'战斗机',2=>9999];
  1. $arr=[];
  2. $arr[]=10;
  3. $arr[]='小明';
  4. $arr[]='male';
  5. $arr[]=20;
  1. $duanyu=array('id'=>'20','name'=>'duanyu','age'=>'26');
  1. $arr2=[];
  2. $arr2['id']=20;
  3. $arr2['name']='小红';
  4. $arr2['age']='18';

二维数组

  1. $arr3=[
  2. 0=>['id'=>10,'name'=>'乔峰','age'=>30],
  3. 1=>['id'=>20,'name'=>'段誉','age'=>28],
  4. 2=>['id'=>30,'name'=>'虚竹','age'=>26]
  5. ];
  6. /*可以简写为
  7. $arr3=[
  8. ['id'=>10,'name'=>'乔峰','age'=>30],
  9. ['id'=>20,'name'=>'段誉','age'=>28],
  10. ['id'=>30,'name'=>'虚竹','age'=>26]
  11. ];
  12. */
  13. printf('<pre>%s</pre>',print_r($arr3,true));
  14. echo $arr3[1]['name'];

数组的遍历

指针方法(较少使用)

  1. $arr=['id'=>10,'name'=>'段誉','age'=>26,'sex'=>'男'];
  2. //current 获取指针当前位置的数组元素的值
  3. //key 获取指针当前位置的数组元素的键
  4. //访问完成后指针自动后移
  5. printf ('[\'%s\']=>%s<br>',key($arr),current($arr));
  6. next($arr); //手动移动指针后移
  7. printf ('[\'%s\']=>%s<br>',key($arr),current($arr));
  8. prev($arr);//向前移动
  9. printf ('[\'%s\']=>%s<br>',key($arr),current($arr));
  10. end($arr);//直接到最后一个元素
  11. printf ('[\'%s\']=>%s<br>',key($arr),current($arr));
  12. next($arr); //手动移动指针后移
  13. printf ('[\'%s\']=>%s<br>',key($arr),current($arr)); //没值了,
  14. reset($arr); //指针复位
  15. printf ('[\'%s\']=>%s<br>',key($arr),current($arr));

while循环

  1. $arr=['id'=>10,'name'=>'段誉','age'=>26,'sex'=>'男'];
  2. while(true) //while(current($arr))
  3. { printf('[\'%s\']=>%s<br>',key($arr),current($arr));
  4. if(next($arr)){
  5. continue;
  6. }else{
  7. break;
  8. }
  9. };

for循环(很少使用)

  1. for($i=0;$i<count($arr);$i++)
  2. { printf('[\'%s\']=>%s<br>',key($arr),current($arr));
  3. next($arr);
  4. }

foreach输出(首选)

foreach(数组变量 as key键 => 值) 输出,不用指针复位,自动后移。

  1. reset($arr);
  2. foreach($arr as $key=>$value ){
  3. //如果用不到key的话,可以删除
  4. //printf ('[\'%s\']=>%s<br>',$key,$value);
  5. echo "['{$key}']=>{$value}<br>";
  6. }

foreach输出(数组里面还有数组)

  1. $arr2=['id'=>10,'name'=>'段誉','age'=>26,'sex'=>'男','wife'=>['木婉清','钟灵','王语嫣',]];
  2. foreach($arr2 as $key=>$value ){
  3. echo is_array($value)? print_r($value,true) : "['{$key}']=>".$value.'<br>';
  4. }
  5. echo '<hr>';

foreach输出二维数组

  1. $arr3=[];
  2. $arr3[]=['id'=>10,'name'=>'乔峰','age'=>30];
  3. $arr3[]=['id'=>20,'name'=>'段誉','age'=>28];
  4. $arr3[]=['id'=>30,'name'=>'虚竹','age'=>26];
  5. // print_r($arr3);
  6. foreach($arr3 as $user ){
  7. foreach($user as $key=>$value ){
  8. echo "['{$key}']=>{$value}<br>";
  9. }
  10. }

foreach通过键名输出

  1. foreach($arr3 as $user ){
  2. printf('id=%s,姓名=%s,年龄=%d',$user['id'],$user['name'],$user['age']);
  3. echo '<br>';
  4. }

list解构/解析数组

数据不多 用结构输出。

  1. $arr3=[];
  2. $arr3[]=['id'=>10,'name'=>'乔峰','age'=>30];
  3. $arr3[]=['id'=>20,'name'=>'段誉','age'=>28];
  4. $arr3[]=['id'=>30,'name'=>'虚竹','age'=>26];
  5. // list('id'=>$id,'name'=>$name,'age'=>$age)=['id'=>10,'name'=>'乔峰','age'=>30]; //前后格式对应
  6. // echo $id,$name,$age;
  7. echo '<hr>';
  8. foreach($arr3 as list('id'=>$id,'name'=>$name,'age'=>$age) ){
  9. printf('id号=%s,姓名=%s,年龄=%d',$id,$name,$age);
  10. echo '<br>';
  11. }

总结:

数组定义有多种方式,根据实际情况使用不同的方式。遍历时优先使用foreach方式和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+教程免费学