Blogger Information
Blog 24
fans 1
comment 0
visits 20858
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP数组的定义访问与遍历
知行合一
Original
818 people have browsed it

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解析。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:还不错
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post