PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)


Posted in PHP onSeptember 11, 2016

本文实例总结了PHP数组用法。分享给大家供大家参考,具体如下:

Demo1.php

<?php
  //创建一个数组变量
  $userNames = array('张三','李四','王五');
  //将这个数组打印出来
// echo $userNames;//Array
// $userName = '张三';
// echo $userName;//张三
  //如果你想打印出这个数组的某一个元素
  //那你必须找到这个元素的下标,键(key)
  //0,1,2
  //echo $userNames[2];//王五
  //print_r -- 打印关于变量的易于理解的信息。
  //print_r($userNames);//Array ( [0] => 张三 [1] => 李四 [2] => 王五 )
  //$userNames 是一个数组变量,而 $userNames[x] 可以理解成数组变量下的小变量
  $userNames[4] = '赵七';
  print_r($userNames);//Array ( [0] => 张三 [1] => 李四 [2] => 王五 [4] => 赵七 )
?>

Demo2.php

<?php
  //range -- 建立一个包含指定范围单元的数组
  //range 包含指定数组
  //包含两种东西,一种叫做键(key),一种叫做值(value)
  //key 是自动生成的,默认从 0 开始,每次 +1
  //value 是你自己赋值的
  //$numbers = range(1,4);
  //print_r($numbers);  //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
// $letters = range('a','e');
// print_r($letters);//Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
// echo $letters[3];
?>

Demo3.php

<?php
  $userNames = array('张三','李四','王五');
  //通过循环来显示数组里的所有值
  //从 0-5 之间循环
// for($i=0;$i<3;$i++){
//   echo ($i+1).'-->'.$userNames[$i].'<br/>';
// }
  /*
   * 1-->张三
   * 2-->李四
   * 3-->王五
   * */
// echo count($userNames); //3
// for($i=0;$i<count($userNames);$i++){
//   echo ($i+1).'-->'.$userNames[$i].'<br/>';
// }
  //如果 key 不是从 0 开始,或者说,压根不是数字,那么就无法用无精打采循环来实现显示数据列表
  //通过 foreach 循环来遍历数组,这方式好处,不需要去考虑 key
// foreach ($userNames as $value){
//   echo $value.'<br/>';
// }
  //foreach 遍历 $key => $value
// foreach ($userNames as $keyaaa => $value){
//   echo $keyaaa.'-->'.$value.'<br/>';
// }
  /**
   * 0-->张三
   * 1-->李四
   * 2-->王五
   * */
  //所以,你要先做个判断
  if(is_array($userNames)){
    foreach ($userNames as $key => $value){
      echo $key.'-->'.$value.'<br/>';
    }
  }else{
    echo $userNames;
  }
?>

Demo4.php

<?php
  $userNames = array('张三','李四','王五');
  print_r($userNames);
  echo $userNames[0];
?>

Demo5.php

<?php
  //创建自定义键(key)的数组
  //如果你不去声明元素的 key ,那么从开始 0 计算
// $userNames = array('baidu'=>'张三','李四','王五');
// print_r($userNames); //Array ( [baidu] => 张三 [0] => 李四 [1] => 王五 )
  $userNames = array('baidu'=>'张三','taobao'=>'李四','360'=>'王五');
  print_r($userNames); //Array ( [baidu] => 张三 [taobao] => 李四 [360] => 王五 )
  echo $userNames['baidu'];
?>

Demo6.php

<?php
  //先创建只一个元素的数组
  $userAge = array('chaoyv'=>25);
  //打印出 chaoyv 的年龄
  //echo $userAge['chaoyv']; //25
  //将以前的数组,追加两条,这里说的下标,键,key 是一个东西
  $userAge['yike'] = 30;
  $userAge['wife'] = 24;
  print_r($userAge);
?>

Demo7.php

<?php
  //array 关键字都可以不要,就能创建数组
  $userAges['chaoyv'] = 25;
  //print_r($userAges); //Array ( [chaoyv] => 25 )
  $userAges['yike'] = 30;
  $userAges['wife'] = 24;
  //print_r($userAges); //Array ( [chaoyv] => 25 [yike] => 30 [wife] => 24 )
  //这里无法使用 for 循环将数据全部显示出来,只能通过 foreach 遍历出来
  foreach ($userAges as $value){
    echo $value.'<br/>';
  }
?>

Demo8.php

<?php
// $userAges['chaoyv'] = 25;
// $userAges['yike'] = 30;
// $userAges['wife'] = 24;
  $username = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
  //print_r($username);
  //each 的使用
  //each -- 返回数组中当前的键/值对并将数组指针向前移动一步
  //这里有一个指针,默认情况下,指针是指定第一个键值对
  //这里的第一个键值对是 '世'=>'何开'
  //如果each($username),那么获取的就是第一个键值对 '世'=>'何开'
  //each 这个函数返回的是一个数组,
  //each 将第一个键值对获取到,然后包装成一个新的数组。
  //print_r(each($username));
  //相当于 $a = Array ( [1] => 何开 [value] => 何开 [0] => 世 [key] => 世 )
  //$a = each($username);
  //echo $a[value];
  print_r(each($username));
  echo '<br/>';
  print_r(each($username));
?>

Demo9.php

<?php
  $username = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
  //这里,我们怎么使用 each 来循环所有的数据呢?
  //相当于 $a = Array ( [1] => 何开 [value] => 何开 [0] => 世 [key] => 世 )
  //两个感叹号,表示真是存在的数据转换成布尔值
// echo !!each($username);//说明有数据,有数据,用布尔值的理念就是真(true)
// echo !!each($username);
// echo !!each($username);
// echo !!each($username);//第四个是假的
  while (!!$a = each($username)){
    echo $a['key'].'-->'.$a['value'].'<br/>';
  }
// $a = each($username);
// echo $a[0].'---'.$a[1].'<br/>';
// $a = each($username);
// echo $a[0].'---'.$a[1].'<br/>';
// $a = each($username);
// echo $a[0].'---'.$a[1].'<br/>';
// /**
//  * 世---何开
//  * 血---赵血儿
//  * 学---墨学之
//  * */
?>

Demo10.php

<?php
// $usernames = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
// $a = each($usernames);
// //世-->何开
// echo $a['key'];
// echo '-->';
// echo $a['value'];
// $a = each($usernames);
// //血-->赵血儿
// echo $a['key'];
// echo '-->';
// echo $a['value'];
// //list -- 把数组中的值赋给一些变量
// $a = array('aaa','bbb','ccc','ddd');
////  print_r($a);//Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd )
// list($var1,$var2,$var3,$var4) = $a;
// echo $var4;
// $usernames = array(0=>'何开','血'=>'赵血儿','学'=>'墨学之');
// //list 只能认识 key 为数字的
// //自定义的字符串 key 是无法使用 list 来识别的
// list($a,$b,$c) = $usernames;
// echo $a;//何开
  $usernames = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
  //相当于 $a = Array ( [1] => 何开 [value] => 何开 [0] => 世 [key] => 世 )
  list($name,$username) = each($usernames);
  echo $username;
?>

Demo11.php

<?php
  $usernames = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
  $a =each($usernames);
  echo $a[key];
  $a =each($usernames);
  echo $a[key];
  //第三次,我想取数组的第一条数组
  //只要将数组的指针调整到第一个位置即可
  //reset -- 将数组的内部指针指向第一个单元
  reset($usernames);
  $a = each($usernames);
  echo $a[key];
  //世血世
?>

Demo12.php

<?php
// $usernames = array('世'=>'何开','境'=>'何开','血'=>'赵血儿','学'=>'墨学之');
// print_r($usernames);
// echo '<br/>';
// //array_unique -- 移除数组中重复的值
// //创建了一个新数组,而新数组呢,已经移除掉了,旧的数组原封不动
// $a = array_unique($usernames);
// print_r($a);
  $numbers = array(1,24,2,1,3,4,2,6,4,2,4,56,2,4,5);
  print_r($numbers);
  $newNumbers = array_unique($numbers);
  print_r($newNumbers);
?>

Demo13.php

<?php
  $usernames = array('世'=>'何开','境'=>'何开','血'=>'赵血儿','学'=>'墨学之');
  print_r($usernames);
  echo '<br/>';
  //array_flip -- 交换数组中的键和值
  $newUsernames = array_flip($usernames);
  print_r($newUsernames);
  /**
   * Array ( [世] => 何开 [境] => 何开 [血] => 赵血儿 [学] => 墨学之 )
   * Array ( [何开] => 境 [赵血儿] => 血 [墨学之] => 学 )
   * */
?>

Demo14.php

<?php
  //创建一个单一的数组
  $products = array(
    array('苹果','6','28.8'),
    array('猪肉','2','18.8'),
    array('饼干','4','48.8')
  );
  //print_r($products);
  //将 $products 第一条元素取出来
  //print_r($products[2]);
  //数组里的数组
  echo "|".$products[0][0]."|".$products[0][1]."|".$products[0][2]."|<br />";
  echo "|".$products[1][0]."|".$products[1][1]."|".$products[1][2]."|<br />";
  echo "|".$products[2][0]."|".$products[2][1]."|".$products[2][2]."|<br />";
?>

Demo15.php

<?php
  //创建一个单一的数组
  $products = array(
    array('苹果','6','28.8'),
    array('猪肉','2','18.8'),
    array('饼干','4','48.8')
  );
  //首先要求出外面数组的长度
  //echo count($products);
  for($i=0; $i<count($products);$i++){
    for($j=0;$j<count($products[$i]);$j++){
      echo '|'.$products[$i][$j];
    }
    echo "|<br/>";
  }
  /*
   * |苹果|6|28.8|
   * |猪肉|2|18.8|
   * |饼干|4|48.8|
   * **/
?>

Demo16.php

<?php
  //创建一个单一的数组
  $products = array(
    array('产品'=>'苹果','数量'=>'6','价格'=>'28.8'),
    array('产品'=>'猪肉','数量'=>'3','价格'=>'25.8'),
    array('产品'=>'饼干','数量'=>'2','价格'=>'26.8')
  );
  //print_r($products)  ;
// for($i=0;$i<count($products);$i++){
//   foreach ($products[$i] as $key => $value){
//     echo $key.'--'.$value.'|';
//   }
//   echo '<br/>';
// }
  for($i=0;$i<count($products);$i++){
    while (!!list($key,$value)=each($products[$i])){
      echo $key.'--'.$value.'|';
    }
    echo '<br/>';
  }
  /**
   * 产品--苹果|数量--6|价格--28.8|
   * 产品--猪肉|数量--3|价格--25.8|
   * 产品--饼干|数量--2|价格--26.8|
   * */
?>

Demo17.php

<?php
// //sort -- 对数组排序
// $fruit = array('banner','orange','apple');
// //没有排序前,一般是按照 key 的顺序进行显示
// //print_r($fruit);
// //排序之后
// sort($fruit);
// print_r($fruit);
  $numbers = array(45,44,27,574,241,7,45,1,5,2,4,5);
  print_r($numbers);
  rsort($numbers);
  echo '<br/>';
  print_r($numbers);
  //按照数字的话,要看整体的数字的大小,按照字符串的话,只看第一位大小
// $numbers = array(2,12,3);
// sort($numbers,SORT_NUMERIC);
// print_r($numbers);Array ( [0] => 2 [1] => 3 [2] => 12 )
// $numbers = array(2,12,3);
// sort($numbers,SORT_STRING);
// print_r($numbers);//Array ( [0] => 12 [1] => 2 [2] => 3 )
?>

Demo18.php

<?php
//asort -- 对数组进行排序并保持索引关系
  $fruit = array('banner','orange','apple');
// sort($fruit);
// print_r($fruit);
  //Array ( [0] => apple [1] => banner [2] => orange )
  asort($fruit);
  print_r($fruit);
  //Array ( [2] => apple [0] => banner [1] => orange )
?>

Demo19.php

<?php
  $fruit = array('b'=>'banner','o'=>'orange','a'=>'apple');
  //ksort -- 对数组按照键名排序
  ksort($fruit)  ;
  print_r($fruit);
  //Array ( [a] => apple [b] => banner [o] => orange )
?>

Demo20.php

<?php
  //echo '<img src="images/mm1.jpg" />';
  //创建一个数组
  $pic = array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');
  //数组进行随机打乱
  //shuffle($pic);
  //多数组进行反向排序,array 打头的函数,一般会创建一个新数组
  $a = array_reverse($pic);
  for($i=0;$i<3;$i++){
    echo '<img src="images/'.$a[$i].'" style="margin:10px;" />';
    echo "\n";
  }
?>

Demo21.php

<?php
  $userName = array('张三');
  print_r($userName);
  //这个函数的返回值将得到 ,目前数组的元素个数
  //array_unshift -- 在数组开头插入一个或多个单元
  //在开头插入数据
  array_unshift($userName,'李四')  ;
  //在结尾插入数据
  array_push($userName,'吴者然');
  //删除开头的元素
  array_shift($userName);
  //删除结尾的元素
  array_pop($userName);
  print_r($userName);
?>

Demo22.php

<?php
  $fruit = array('banner','orange','apple');
  //这个函数用来获取一个数组中的键(key)
  //第二个参数表明随即获取几个
// $a = array_rand($fruit,1);
// echo $fruit[$a];
  $a = array_rand($fruit,2);
  echo $fruit[$a[0]].' '.$fruit[$a[1]];
?>

Demo23.php

<?php
  $username = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
  //默认情况下,指针在第一条数据
  //获取指针的当前元素,current 并没有将指针移到下一步
// echo current($username);
// echo current($username);
// echo current($username);
// echo next($username);
// echo current($username);
// echo next($username);
// echo current($username);
// //reset -- 将数组的内部指针指向第一个单元
// echo reset($username);
// echo sizeof($username);//count
  $numbers = array(1,4,5,656,7,5,7,4,7,4,5,7);
  //array_count_values -- 统计数组中所有的值出现的次数
  print_r(array_count_values($numbers));
?>

Demo24.php

<?php
  $a=$b=$c='';
  $fruits = array('a'=>'apple','b'=>'banner','c'=>'orange');
  //通过标量函数将字符串键(key)设置成变量,然后将值赋给了这个变量
  extract($fruits);
  echo $a;
  echo $c;
  echo $b;
  //appleorangebanner
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
Jun 08 PHP
memcache命令启动参数中文解释
Jan 13 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
May 29 PHP
Laravel框架表单验证详解
Sep 04 PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 PHP
PHP获取youku视频真实flv文件地址的方法
Dec 23 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 PHP
PHP后期静态绑定实例浅析
Dec 21 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 PHP
PHP入门教程之数学运算技巧总结
Sep 11 #PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 #PHP
PHP基本语法实例总结
Sep 09 #PHP
php入门教程之Zend Studio设置与开发实例
Sep 09 #PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 #PHP
PHP实现支持加盐的图片加密解密
Sep 09 #PHP
php、java、android、ios通用的3des方法(推荐)
Sep 09 #PHP
You might like
多个PHP中文字符串截取函数
2013/11/12 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
javascript学习之闭包分析
2010/12/02 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
Python中AND、OR的一个使用小技巧
2015/02/18 Python
深入理解python函数递归和生成器
2016/06/06 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
python正则中最短匹配实现代码
2018/01/16 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
Python自定义一个异常类的方法
2019/06/27 Python
Django stark组件使用及原理详解
2019/08/22 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
档案管理员岗位职责
2013/12/01 职场文书
打架检讨书100字
2014/01/08 职场文书
团队精神口号
2014/06/06 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
2014年环保工作总结
2014/11/26 职场文书
技术负责人岗位职责
2015/02/10 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
学校教学工作总结2015
2015/05/19 职场文书