博客列表 >实例演示php数组常用api

实例演示php数组常用api

P粉479712293
P粉479712293原创
2022年11月01日 21:16:37323浏览

题目1:数组指针的向前prev()与向后next()

php文件:

  1. <?php
  2. // *数组指针的向前prev()与向后next()
  3. // *一个名为三国的数组
  4. $sanguo=['id'=>1,'name'=>'关羽','nickname'=>'关公','tribe'=>'蜀国'];
  5. printf('[%s]=>%s<br>',key($sanguo),current($sanguo));
  6. next($sanguo);
  7. printf('[%s]=>%s<br>',key($sanguo),current($sanguo));
  8. next($sanguo);
  9. printf('[%s]=>%s<br>',key($sanguo),current($sanguo));
  10. next($sanguo);
  11. printf('[%s]=>%s<br>',key($sanguo),current($sanguo));
  12. prev($sanguo);
  13. printf('[%s]=>%s<br>',key($sanguo),current($sanguo));
  14. reset($sanguo);
  15. printf('[%s]=>%s<br>',key($sanguo),current($sanguo));
  16. end($sanguo);
  17. printf('[%s]=>%s<br>',key($sanguo),current($sanguo));

浏览器运行效果图:

题目2:数组的循环遍历及数组的解构

php文件:

  1. <?php
  2. // *数组的循环遍历及数组的解构
  3. // *1.用while循环遍历数组
  4. $suihu=['id'=>2,'name'=>'宋江','nickname'=>'及时雨','tribe'=>'水泊梁山'];
  5. reset($suihu);
  6. if(count($suihu)>0){
  7. while(true){
  8. printf('[%s]=>%s<br>',key($suihu),current($suihu));
  9. if(next($suihu)){
  10. continue;
  11. }else{
  12. break;
  13. }
  14. }
  15. }else{
  16. echo '空数组';
  17. }
  18. // *2.使用foreach数组循环遍历语法糖:
  19. foreach($suihu as $key=>$value){
  20. printf('[%s]=>%s<br>',$key,$value);
  21. }
  22. echo '<hr>';
  23. // *数组解构:就是把数组解析到变量中
  24. // *索引数组的解构
  25. list($name,$nickname)=['关羽','关公'];
  26. echo $name,',',$nickname,'<br>';
  27. echo '<hr>';
  28. // *关联数组的解构
  29. list('name'=>$name,'nickname'=>$nickname)=['name'=>'林冲','nickname'=>'豹子头'];
  30. echo $name,',',$nickname,'<br>';
  31. echo '<hr>';
  32. // *通过内置的extract解析关联数组
  33. extract(['name'=>'李逵','nickname'=>'黑旋风']);
  34. echo $name,',',$nickname,'<br>';

浏览器运行效果图:

题目3:foreach数据表以及推荐使用的解构方法

php文件:

  1. <?php
  2. // *foreach数据表以及推荐使用的解构方法
  3. // *1.使用foreach遍历数据库中的数据表
  4. $users=[
  5. ['id'=>1,'name'=>'刘备'],
  6. ['id'=>2,'name'=>'关羽'],
  7. ['id'=>3,'name'=>'张飞'],
  8. ];
  9. foreach($users as $user){
  10. vprintf('id=%s,name=%s<br>',$user);
  11. }
  12. echo '<hr>';
  13. // *2.把$users数组当作一个模板,直接将它解构,其效果也是一样的(推荐)
  14. foreach($users as list('id'=>$id,'name'=>$name)){
  15. printf('id=%s,name=%s<br>',$id,$name);
  16. }

浏览器运行效果图:

题目4:数组的值组成新数组及键号重置以及元素的查询

php文件:

  1. <?php
  2. // *数组的值组成新数组及键号重置以及元素的查询
  3. //* 1.array_values():将数组的值组成新数组及键号重置
  4. $arr=[0=>1,3=>'水浒',4=>5,7=>['刘备','关羽','张飞']];
  5. printf('<pre>%s</pre>',print_r($arr,true));
  6. printf('<pre>%s</pre>',print_r(array_values($arr),true));
  7. // *2.in_array():查询某个元素是否在数组中
  8. echo(in_array('水浒',$arr)?'在数组中':'不在数组中').'<br>';
  9. echo(in_array('三国',$arr)?'在数组中':'不在数组中').'<br>';
  10. // *3.array_search():不但找到该元素,还知道该元素的索引是多少,从而也知道该元素的值
  11. $key=array_search('水浒',$arr);
  12. echo $key,'<br>',$arr[$key];

浏览器运行效果图:

题目5:数组元素的值的展示与计算

php文件:

  1. <?php
  2. // *数组元素的值的展示与计算
  3. // *1.array_unique():去掉数组重复的值
  4. $lgz=[0=>'刘备',1=>'关羽',2=>'张飞',3=>'刘备'];
  5. printf('<pre>%s</pre>',print_r($lgz,true));
  6. print_r(array_unique($lgz));
  7. echo '<br>';
  8. // *2.count()统计当前数组元素的数量:
  9. echo count($lgz);
  10. // *3.array_count_values():统计数组中元素的值出现的次数
  11. printf('<pre>%s</pre>',print_r(array_count_values($lgz),true));
  12. // *4.array_sum():计算数组中元素的值之和
  13. $arr=[0=>1,2=>40,3=>'10php',4=>'js10',5=>'css'];
  14. echo array_sum($arr).'<br>';
  15. // *5.array_product():计算数组中元素的值的乘积
  16. echo array_product($arr);

浏览器运行效果图:

题目6:数组元素的增加与删除相当于堆栈的压入与弹出

php文件:

  1. <?php
  2. // *数组元素的增加与删除相当于堆栈的压入与弹出
  3. // *空数组
  4. $lgz=[];
  5. // *1.array_push():数组元素压入堆栈
  6. echo array_push($lgz,'刘备','关羽','张飞').'<br>';
  7. print_r($lgz);
  8. echo '<br>';
  9. // *2.array_pop():数组的元素弹出堆栈(后进先出)
  10. echo array_pop($lgz).'<br>';
  11. echo array_pop($lgz).'<br>';
  12. print_r($lgz);
  13. echo '<br>';
  14. $sanguo=[];
  15. // *3.array_unshift():数组元素压入堆栈的另一种形式
  16. echo array_unshift($sanguo,'魏国','蜀国','吴国').'<br>';
  17. print_r($sanguo);
  18. echo '<br>';
  19. // *4.array_shift():数组元素弹出堆栈的另一种形式(先进先出)
  20. echo array_shift($sanguo).'<br>';
  21. echo array_shift($sanguo).'<br>';
  22. print_r($sanguo);
  23. echo '<br>';
  24. // *5.array_push()入,array_shift()出
  25. $student=[];
  26. echo array_push($student,'张三','李四','王五').'<br>';
  27. print_r($student);
  28. echo '<br>';
  29. echo array_shift($student).'<br>';
  30. echo array_shift($student).'<br>';
  31. print_r($student);
  32. echo '<br>';
  33. // *6.array_unshift()入,array_pop()出
  34. $product=[];
  35. echo array_unshift($product,'电脑','空调','音响').'<br>';
  36. echo array_pop($product).'<br>';
  37. echo array_pop($product).'<br>';
  38. print_r($product);

浏览器运行效果图:

题目7:数组元素的升降序

php文件:

  1. <?php
  2. // *sort():数组元素的升序(默认)
  3. $arr=[2,34,55,6,'php','welcome',7];
  4. printf('<pre>%s</pre>',print_r($arr,true));
  5. sort($arr);
  6. printf('<pre>%s</pre>',print_r($arr,true));
  7. echo '<hr>';
  8. // *asort():在前面加a则顺序时键号不会被重置
  9. $arr2=[21,134,55,62,'李四','abc',17];
  10. printf('<pre>%s</pre>',print_r($arr2,true));
  11. asort($arr2);
  12. printf('<pre>%s</pre>',print_r($arr2,true));
  13. echo '<hr>';
  14. // *rsort():数组元素的降序排列
  15. $arr3=[11,34,50,2,'a2','a',12];
  16. printf('<pre>%s</pre>',print_r($arr3,true));
  17. rsort($arr3);
  18. printf('<pre>%s</pre>',print_r($arr3,true));
  19. echo '<hr>';
  20. // *arsort():在前面加a则降序时键号不会被重置
  21. $arr4=[2,13,5,6,'js','张三',30];
  22. printf('<pre>%s</pre>',print_r($arr4,true));
  23. arsort($arr4);
  24. printf('<pre>%s</pre>',print_r($arr4,true));
  25. echo '<hr>';
  26. // *ksort():键排序(升序)
  27. $arr5=[2,34,55,6,'php','welcome',7];
  28. printf('<pre>%s</pre>',print_r($arr5,true));
  29. ksort($arr5);
  30. printf('<pre>%s</pre>',print_r($arr5,true));
  31. echo '<hr>';
  32. // *krsort():键的降序
  33. $arr6=[2,34,55,6,'php','welcome',7];
  34. printf('<pre>%s</pre>',print_r($arr6,true));
  35. krsort($arr6);
  36. printf('<pre>%s</pre>',print_r($arr6,true));
  37. echo '<hr>';
  38. // *shuffle():乱序(即每刷新一次就大乱顺序一次,可用于抽奖等场合)
  39. $arr7=[2,34,55,6,'php','welcome',7];
  40. printf('<pre>%s</pre>',print_r($arr7,true));
  41. shuffle($arr7);
  42. printf('<pre>%s</pre>',print_r($arr7,true));
  43. echo '<hr>';

浏览器运行效果图:

题目8:数组中部分元素的展示与删除

php文件:

  1. <?php
  2. // *展示数组中的部分元素与删除数组中的部分元素
  3. // *1.array_slice():只展示数组的部分元素
  4. $sanguo=['id'=>1,'name'=>'关羽','nickname'=>'关公','arms'=>'青龙偃月刀'];
  5. $res=array_slice(
  6. $sanguo,
  7. 1,
  8. 2
  9. );
  10. printf('<pre>%s</pre>',print_r($res,true));
  11. $res=array_slice(
  12. $sanguo,
  13. 1
  14. );
  15. printf('<pre>%s</pre>',print_r($res,true));
  16. echo '<hr>';
  17. // *2.array_splice():删除数组中的部分元素
  18. $arr=[2,34,55,6,'php','welcome',7];
  19. printf('<pre>%s</pre>',print_r($arr,true));
  20. $res1=array_splice(
  21. $arr,
  22. 1,
  23. 2
  24. );
  25. printf('<pre>%s</pre>',print_r($res1,true));
  26. printf('<pre>%s</pre>',print_r($arr,true));

浏览器运行效果图:

题目9:php数组元素的替换与追加

php文件:

  1. <?php
  2. // *php数组元素的替换与追加
  3. // *1.使用array_splice()功能实现替换
  4. $arr=[2,34,55,6,'php','welcome',7];
  5. printf('原始数组:<pre>%s</pre>',print_r($arr,true));
  6. $res=array_splice(
  7. $arr,
  8. 4,
  9. 2,
  10. ['js','hello'],
  11. );
  12. printf('<pre>%s</pre>',print_r($res,true));
  13. printf('新数组:<pre>%s</pre>',print_r($arr,true));
  14. echo '<hr>';
  15. // *2.使用array_splice()功能实现追加
  16. $arr1=[2,34,55,6,'php','welcome',6];
  17. printf('原始数组:<pre>%s</pre>',print_r($arr1,true));
  18. $res1=array_splice(
  19. $arr1,
  20. 1,
  21. 0,
  22. [22,33],
  23. );
  24. // printf('<pre>%s</pre>',print_r($res1,true));
  25. printf('新数组:<pre>%s</pre>',print_r($arr1,true));

浏览器运行效果图:

题目10:数组过滤器

php文件:

  1. <?php
  2. // *数组过滤器
  3. // *1.留下true的元素,其余过滤掉
  4. $arr=[
  5. 234,
  6. 'js',
  7. true,
  8. [1,2,3],
  9. (new class(){
  10. }),
  11. [],
  12. null,
  13. false,
  14. '',
  15. 0,
  16. '0'
  17. ];
  18. $res=array_filter($arr);
  19. printf('<pre>%s</pre>',print_r($res,true));
  20. echo '<hr>';
  21. // *2.留下标量(数据类型),其余过滤掉
  22. $res1=array_filter($arr,function($item){
  23. return is_scalar($item);
  24. });
  25. printf('<pre>%s</pre>',print_r($res1,true));
  26. // *再次过滤
  27. printf('<pre>%s</pre>',print_r(array_filter($res1),true));

浏览器运行效果图:

题目11:数组拉平与迭代

php文件:

  1. <?php
  2. // *数组拉平与迭代
  3. // *1.array_map(function($item){},$arr):把数组$arr中的元素$item拉平成字符串
  4. $arr = [
  5. '水浒',
  6. [3, 4, 5],
  7. (new class () {
  8. public string $name = '宋江';
  9. public string $nickname = '及时雨';
  10. }),
  11. 15,
  12. 20
  13. ];
  14. // *拉平
  15. $res=array_map(function($item){
  16. switch(gettype($item)){
  17. case 'array':
  18. $item=implode(',',$item);
  19. break;
  20. case 'object':
  21. $item=implode(',',get_object_vars($item));
  22. break;
  23. }
  24. return $item;
  25. },$arr);
  26. printf('<pre>%s</pre>',print_r($res,true));
  27. echo '<hr>';
  28. // *2.array_sum():数组的值求和也是迭代的一种
  29. $arr1=[1,2,3,4,5];
  30. echo array_sum($arr1),'<br>';
  31. echo '<hr>';
  32. // *3.array_reduce():迭代:就是把这些数组元素用同一个值返回,
  33. // *或者把许多标签组合在一起,形成一个比较大的元素
  34. $res1=array_reduce($arr1,function($acc,$cur){
  35. echo $acc,',',$cur,'<br>';
  36. return $acc+$cur;
  37. },0);
  38. echo $res1,'<br>';
  39. echo '<hr>';
  40. // *4.array_walk():对模板进行一些控制
  41. $arr2=['id'=>5,'name'=>'李逵','nickname'=>'黑旋风'];
  42. array_walk($arr2,function($value,$key,$color){
  43. printf('[%s]=><span style="color:%s">%s</span><br>',$key,$color,$value);
  44. },'red');

浏览器运行效果图:

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