设为首页 收藏本站
查看: 822|回复: 0

[经验分享] PHP整理笔记四

[复制链接]

尚未签到

发表于 2018-12-13 12:56:02 | 显示全部楼层 |阅读模式
一.什么是数组
传统上把数组(array)定义为一组有某种共同特性的元素,包括相似性和类型。每个元素由一个特殊的标识符来区分,称之为键(key);而每个键对应一个值(value)

李彦宏

周鸿祎

马云

俞敏洪

李开复

吴祁


依照上表,我们创建一个数组。

第一种:
          $userNames=array('李彦宏','周鸿祎','马云','俞敏洪','李开复','吴祁');
这是索引数组初始化:
数字索引的初始值是从0开始计算的:
             userNames[0]---userNames[5],代表这6个人的名字。

第二种:
通过range()函数自动创建一个数组
$numbers=range(1,10)    $letters=range('a','z')
可以加第三个参数$numbers=range(1,10,2),第三个参数表示步长

访问数组的内容:
要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。
$numbers[0]$numbers[1]$numbers[2];等。

改变数组的值:
      $numbers[0]="Lee";
  
使用循环访问数组
由于数组使用有序的数字作为索引,所以使用一个for循环就可以很容易地显示数组的内容:
         for ($i=0;$i19,'李炎恢'=>27,'胡心鹏'=>23);
访问数组元素
$ages["吴祁"];
$ages["李炎恢"];
$ages["胡心鹏"];


追加数组:首先,创建只有一个元素的数组,然后追加两个元素。
$ages=array("吴祁"=>19);
$ages["李炎恢"]=27;
$ages["胡心鹏"]=23;

直接添加数组:无需创建,直接添加,添加第一个元素自动建立数组。
$ages["吴祁"]=19;
$ages["李炎恢"]=27;
$ages["胡心鹏"]=23;

使用循环语句:因为相关数组的索引不是数字,因此无法使用for循环语句中使用一个简单的计数器对数组进行操作。但是可以使用foreach循环或list()each()结构。
         foreach ($ages as $key=>$value) {
                echo $key."=>".$value."";
}

使用each()结构打印$ages数组的内容:each()函数返回数组的当前元素,并将下一个元素作为当前元素。
         while (!!$element=each($ages)) {
                echo $element["key"];
                echo "=>";
                echo $element["value"];
                echo "";
}
使用list()函数,可以用来将一个数组分解为一系列的值。可以按照如下方式将函数each()返回的两个值分开:
list($name,$age)=each($ages);

当使用each()函数时,数组将记录当前元素。如果希望在相同的脚本中两次使用该数组,就必须使用函数reset()将当前元素重新设置到数组开始处。
reset($prices);

确定唯一的数组元素:array_unique();它会删除掉里面相同值的元素。
置换数组键和值:array_flip();它会对调数组中的keyvalue;

  
三.数组里的数组
数组不一定就是一个关键字和值的简单列表----数组中的每个位置用来保存另一个数组。使用这种方法,可以创建一个二维数组。可以把二维数组当成一个矩阵,或者是一个具有宽度和高度或者行和列的网格。
二维表

产品名

数量

价格

苹果

6

28.8

猪肉

2

32.1

饼干

3

45.3

     
$products=array(
                                     array("苹果",6,28.8),
                                     array("猪肉",2,32.1),
                                     array("饼干",3,45.3)
);
显示这个二维数组:
         echo "|".$products[0][0]."|".$products[0][1]."|".$products[0][2]."|";
         echo "|".$products[1][0]."|".$products[1][1]."|".$products[1][2]."|";
echo "|".$products[2][0]."|".$products[2][1]."|".$products[2][2]."|";

此外,还可以使用双重for循环来实现同样的效果:
      for ($row=0;$row"苹果","数量"=>6,"价格"=>28.8),
                                     array("产品名"=>"猪肉","数量"=>2,"价格"=>32.1),
                                     array("产品名"=>"饼干","数量"=>3,"价格"=>45.3)
         );
  
显示这个二维数组:
第一种方式:
         for ($row=0;$row苹果,"a"=>猪肉,"b"=>饼干);
asort($prices);
按说明排序使用ksort()函数
ksort($prices)

反向排序:sort()asort()ksort()都是正向排序,当然也有相对应的反向排序.
实现反向:rsort()arsort()krsort()
  
在一些应用程序中,可能希望按另一种方式对数组排序。函数shuffle()将数组个元素进行随机排序。函数array_reverse()给出一个原来数组的反向排序。
         shuffle($pictures);
array_reverse($pictures);

array_unshift()函数将新元素添加到数组头,array_push()函数将每个新元素添加到数组的末尾。
array_shift()删除数组头第一个元素,与其相反的函数是array_pop(),删除并返回数组末尾的一个元素。
array_rand()返回数组中的一个或多个键。
  
五.数组的指针操作
  
在数组中浏览:each()current()reset()end()next()pos()prev();
调用next()each()将使指针前移一个元素。调用each($array_name)会在指针前移一个位置之前返回当前元素。next()函数则有些不同----调用next($array_name)是将指针前移,然后再返回新的当前元素。
要反向遍历一个数组,可以使用end()prev()函数。prev()函数和next()函数相反。它是将当前指针往回移一个位置然后再返回新的当前元素。
  
六.统计数组个数
count()sizeof()统计数组下标的个数
array_count_values()统计数组内下标值的个数

  七.将数组转换成标量变量:extract()
对于一个非数字索引数组,而该数组又有许多关键字-值对,可以使用函数extract()将它们转换成一系列的标量变量。extract()函数原型如下:
extract(array var_array,[intextract_type],[string prefix]);
函数extract()的作用是通过一个数组创建一系列的标量变量,这些变量的名称必须是数组中关键字的名称,而变量值则是数组中的值。
      $array=array("key1"=>"value1","key2"=>"value2","key3"=>"value3");
         extract($array);//讲数组中的键变为变量可以直接输出
echo $key1.$key2.$key3;
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650963-1-1.html 上篇帖子: PHP整理笔记三 下篇帖子: php银行卡验证
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表