我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PHP学习笔记(观隅反三)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PHP学习笔记(观隅反三)

前言

不知不觉距离上篇PHP的文章 PHP学习笔记(才贯二酉)已经过去好多天了,今天看到推送——1024程序员节,莫名还有些小激动(os:自知自己的一些雕虫小技肯定和程序员这个技术深似海的称号扯不上什么关系,但是奈何人菜瘾大,还是忍不住在各位 “关公” 面前浅耍一下小刀,如有不足,感谢指正呀!)
也希望通过学习笔记巩固自己所学知识,学会举一反三,从一件事情类推而知道其他许多事情。
在这里插入图片描述

数组(一)

为什么要创建数组这里就不赘述了,在 PHP 中,有三种类型的数组:

数值数组 - 带有数字 ID 键的数组
关联数组 - 带有指定的键的数组,每个键关联一个值
多维数组 - 包含一个或多个数组的数组

创建数组

在 PHP 中,定义数组的方式有:

利用array[ ]函数来定义,这也是PHP中最常用定义数组的方法:

$arr1=array("hello","world",1);var_dump($arr1);echo "
"
;//输出 array(3) { [0]=> string(5) "hello" [1]=> string(5) "world" [2]=> int(1) }

利用中括号来定义数组:

$arr2=["hello","world",1];var_dump($arr2);echo "
"
//输出 array(3) { [0]=> string(5) "hello" [1]=> string(5) "world" [2]=> int(1) }

通过键值对来定义隐形数组:

$array[]='orange';$array[2]='apple';$array[]='banana';$array['watermelon']='watermelon';var_dump($array);

隐形数组的输出:
在这里插入图片描述由此可以简单总结一下PHP中数组的特点:

  1. 数组的下标可以是整数下标(数组元素均为整数下标:索引数组);也可以是字符串类型的下标(数组元素均为字符串:关联数组);也可以是不同类型下标混合使用(混合数组);
  2. 数组元素的顺序和元素放入的顺序有关,和下标无关;
  3. 整数下标具有自增长性,如果手动添加一个较大的整数下标,后面的下标会根据最大的元素下标开始自增;
  4. 特殊值的下标可以自动转换:true,false等
    5.数组元素没有类型限制,也没有长度限制,不需要提前指定数组长度,比较灵活,同时效率也不会那么高;存储的位置是在堆区,为数组分配一块连续的内存。

PHP中根据索引的分类分为:索引数组、关联数组
索引数组和关联数组的差别就在键名上,索引数组的键名是数字;关联数组的键名由字符串或字符串、数字混合的形式组成;如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。

索引数组

//索引数组1 下标是可以不连续的,不给加下标默认下标是0 $arr3=array(    '2'=>"张三",    '3'=>"张四",    '4'=>"张五",    '5'=>"张六",); print_r($arr3); var_dump($arr3); echo $arr3[3]; //Array ( [2] => 张三 [3] => 张四 [4] => 张五 [5] => 张六 )//array(4) { [2]=> string(6) "张三" [3]=> string(6) "张四" [4]=> string(6) "张五" [5]=> string(6) "张六" }//张四//索引数组2$arr4 = array('张三','张四','张五','张六'); print_r($arr4); echo "
"
; echo '数组 $arr4 中的,键名为3的键值为:'.$arr4[3]; //Array ( [0] => 张三 [1] => 张四 [2] => 张五 [3] => 张六 )//数组 $arr4 中的,键名为3的键值为:张六//索引数组3 $arr5[0]='张三'; $arr5[1]='张四'; $arr5[2]='张五'; $arr5[3]='张六'; var_dump($arr5); //array(4) { [0]=> string(6) "张三" [1]=> string(6) "张四" [2]=> string(6) "张五" [3]=> string(6) "张六" }

关联数组

//关联数组的下标(键名)由数值和字符串混合的形式组成,如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。$arr6 = array(    'Apple' => '苹果',    'Banana' => '香蕉',    'Orange' => '橘子',    'Plum' => '李子',    'Strawberry' => '草莓'    );print_r($arr6);//Array ( [Apple] => 苹果 [Banana] => 香蕉 [Orange] => 橘子 [Plum] => 李子 [Strawberry] => 草莓 )

多维数组

在这里插入图片描述

我们以二维数组为例,它的语法有:

直接赋值法,语法 $array[一维下标][二维下标]="值";
2、使用array()函数,语法array(array(key=>value...),array(key=>value...)....);
比如:

//直接赋值法:$stu[0]['姓名'] = '张三';$stu[0]['年龄'] = '25';$stu[0]['性别'] = '男';$stu[1]['姓名'] = '李四';$stu[1]['年龄'] = '21';$stu[1]['性别'] = '男';$stu[2]['姓名'] = '娜娜';$stu[2]['年龄'] = '22';$stu[2]['性别'] = '女';var_dump($stu);//array(3) { [0]=> array(3) { ["姓名"]=> string(6) "张三" ["年龄"]=> string(2) "25" ["性别"]=> string(3) "男" } [1]=> array(3) { ["姓名"]=> string(6) "李四" ["年龄"]=> string(2) "21" ["性别"]=> string(3) "男" } [2]=> array(3) { ["姓名"]=> string(6) "娜娜" ["年龄"]=> string(2) "22" ["性别"]=> string(3) "女" } }//使用array()函数$stu1=array(    array('张三','25','男'),    array('李四','21','男'),    array('娜娜','22','女'),);var_dump($stu1);//array(3) { [0]=> array(3) { [0]=> string(6) "张三" [1]=> string(2) "25" [2]=> string(3) "男" } [1]=> array(3) { [0]=> string(6) "李四" [1]=> string(2) "21" [2]=> string(3) "男" } [2]=> array(3) { [0]=> string(6) "娜娜" [1]=> string(2) "22" [2]=> string(3) "女" } }$stu2=array(    array('name'=>'lili','sex'=>'famale','age'=>12),    array('name'=>'tom','sex'=>'male','age'=>15),    array('name'=>'join','sex'=>'famale','age'=>10));echo ($stu2[0]['name']);//输出指定数组元素 liliecho "
"
;

数组的遍历

PHP中遍历数组有三种常用的方法:

使用for语句循环遍历数组;

使用foreach语句遍历数组;

联合使用list()、each()和while循环遍历数组(感觉挺有意思的,试一下)

这三种方法中效率最高的是使用foreach语句遍历数组,在这里着重介绍一下foreach语句:

//for语句$arr9 = array('tom','lili','join');$num = count($arr9);//count用来获取数组的长度for($i=0;$i<$num;++$i){echo $arr9[$i].'
'
;}//foreach语句//每次循环中,当前元素的值被赋给变量$value,并且把数组内部的指针向后移动一步。所以下一次循环中会得到数组的下一个元素,直到数组的结尾才停止循环,结束数组的遍历。foreach($arr9 as $value){ echo $value."
"
;}//tom//lili//joinforeach($arr9 as $key=> $value){ echo $key.$value."
"
;}//打印出键名(下标)//0tom//1lili//2join//联合使用list()、each()和while循环遍历数组$arr = array('Chinese'=>'沃和莱特','english'=>'varlet');while(list($key,$value) = each($arr)){echo $key.'=>'.$value.'
'
;}//Chinese=>沃和莱特//english=>varlet

foreach语句遍历二维数组:

// 二维数组的遍历$employee=array(    "人事部"=>array('a','b','c'),    "研发部"=>array('d','e','f'),);//打印出人事部有abc,研发部有def;foreach($employee as $key=>$value){    echo $key.":";foreach($value as $keyin=>$valuein){    echo $valuein." ";}echo "
"
;}//人事部:a b c//研发部:d e f
// 把一个数组遍历成一个表格$people=array(    array('name'=>'张三','sex'=>'male','age'=>25,'ad'=>"济南"),    array('name'=>'李四','sex'=>'famale','age'=>27,'ad'=>"上海"),    array('name'=>'王五','sex'=>'male','age'=>21,'ad'=>"青岛"));echo "";echo"";foreach($peopleas$key=>$value){echo"";echo"";foreach($valueas$keyin=>$valuein){echo"";}echo"";}echo"
idnamesexagead
$key $valuein
"
;echo "
"
;

在这里插入图片描述

简单总结一下foreach遍历的本质就是数组的内部有一颗指针,默认指向数组元素的第一个元素,foreach利用指针获取数组,同时移动指针;并且foreach会重置指针,让指针指向第一个元素;

数组函数

//返回数组元素的位置$str2=["张三",23,"jinan"];$res=array_search("张三",$str2);echo $res;// 0// 删除数组最后一个元素$str2=["张三",23,"jinan"];$res1=array_pop($str2);echo $res1;// jinan// 默认向数组尾部增加一个元素$str2=["张三",23,"jinan"];$res2=array_push($str2,"qingdao");print_r($str2);// Array ( [0] => 张三 [1] => 23 [2] => jinan [3] => qingdao )//数组去重$arr3=["join","jim","tom","tom"];$res4=array_unique($arr3);var_dump($res4);// array(3) { [0]=> string(4) "join" [1]=> string(3) "jim" [2]=> string(3) "tom" }// 数组排序 升序$arr4=["mudan","meigui","huaihua"];sort($arr4);print_r($arr4);// Array ( [0] => huaihua [1] => meigui [2] => mudan )$arr5=[12,13,32,45,0];sort($arr5);print_r($arr5);// Array ( [0] => 0 [1] => 12 [2] => 13 [3] => 32 [4] => 45 )// 降序排序$arr4=["mudan","meigui","huaihua"];rsort($arr4);print_r($arr4);// Array ( [0] => mudan [1] => meigui [2] => huaihua )$arr5=[12,13,32,45,0];rsort($arr5);print_r($arr5);// Array ( [0] => 45 [1] => 32 [2] => 13 [3] => 12 [4] => 0 )// 根据数组的值升序排序$age=array(    "granderfather"=>110,    "grandermonther"=>100,    "father"=>42,    "mother"=>40,    "brother"=>10,    "me"=>19,);asort($age);print_r($age);// Array ( [brother] => 10 [me] => 19 [mother] => 40 [father] => 42 [grandermonther] => 100 [granderfather] => 110 )// 根据键值进行升序排序$age1=array(    "ben"=>11,    "lili"=>12,    "tom"=>13);ksort($age1);print_r($age1);// Array ( [ben] => 11 [lili] => 12 [tom] => 13 )// 根据键值进行降序排序$age1=array(    "ben"=>11,    "lili"=>12,    "tom"=>13);krsort($age1);print_r($age1);// Array ( [tom] => 13 [lili] => 12 [ben] => 11 )// 打乱数组$age=array(    "granderfather"=>110,    "grandermonther"=>100,    "father"=>42,    "mother"=>40,    "brother"=>10,    "me"=>19,);shuffle($age);print_r($age);// Array ( [0] => 100 [1] => 42 [2] => 19 [3] => 40 [4] => 10 [5] => 110 )// 删除数组$arr5=[12,13,32,45,0];unset($arr5[0]);print_r($arr5);// Array ( [1] => 32 [2] => 13 [3] => 12 [4] => 0 )// 返回所有元素并将其放在一个新的数组中$age1=array(    "ben"=>11,    "lili"=>12,    "tom"=>13);$res9=array_values($age1);print_r($res9);// Array ( [0] => 11 [1] => 12 [2] => 13 )// 返回一个包含从 "0" 到 "50" 之间并以 10 递增的元素的数组:$number = range(0,50,10);print_r ($number);// Array ( [0] => 0 [1] => 10 [2] => 20 [3] => 30 [4] => 40 [5] => 50 )// 返回指定范围的索引$num=[12,13,32,45,0,7,8,10];$Nu=array_slice($num,1,3);//从第一个元素到第三个元素print_r($Nu);// Array ( [0] => 13 [1] => 32 [2] => 45 )

总结

以上就是这篇文章对php数组的介绍啦,后续还会持续更新~可爱的程序员大佬们1024快乐,你是电脑的灵魂,你是网络的主人,你是程序的化身,你是创意的天使,你是互联网的传说,期待创造与前进,加油!
在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_64122448/article/details/127479302

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PHP学习笔记(观隅反三)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

NumPy 学习笔记(三)

NumPy 数组操作:  1、修改数组形状    a、numpy.reshape(arr, newshape, order='C') 在不改变数据的条件下修改形状    b、numpy.ndarray.flat 是一个数组元素迭代器    
2023-01-31

Redis学习笔记(三) 字典

Redis的字典使用哈希表作为底层实现,一个哈希表中可以有多个哈希表节点,而每个哈希节点就保存在字典中的一个键值对。redis字典所用的哈希表由disht结构定义。typedef struct dictht{ dictEntry **table;//哈希
Redis学习笔记(三) 字典
2014-05-20

PHP 学习笔记 (3)

昨天笔记2说道了PHP的标记以及短标记,今天记录下如何吧PHP从HTML分离手册参考:http://www.php.net/manual/zh/language.basic-syntax.phpmode.phpPHP手册告诉我们,PHP凡是
2023-01-31

Python学习笔记三(Python程序

Linux系统自带的python版本通常都比较低,可以在python官方网站(http://www.python.org/download/)下载最新源码包,然后进行升级安装。1.下载python源码包。wget http://www.py
2023-01-31

Flutter学习笔记(三)RowColum布局

这篇文章主要介绍了Flutter学习笔记(三)RowColum布局,通俗来说,就是横向布局和纵向布局的用法,需要的朋友可以参考下
2023-05-14

JPetStore 5.0 学习笔记(三.Service层)

JPetStore 5.0 学习笔记(三.Service层)[@more@]19.把剩下的UPDATE/DELETE/ADD加上去,运行了一下,所有均成功了20.下面我们来回顾一下整个ibatis开发过程.首先编写User.xml,为了生效
2023-06-03

学习笔记-小甲鱼Python3学习第三十

丰富的else语句python中else不仅可以与if搭配组成控制流,还可以与while或for搭配使用要么怎样,要么不怎样干完了能怎样,干不完就别想怎样没有问题,那就干吧举例:求素数def showMaxFactory(num):   
2023-01-31

学习笔记-小甲鱼Python3学习第三讲

测试题:以下哪个变量的命名不正确?为什么?(A) MM_520 (B) MM520 (C) 520_MM (D) _520_MMC,变量名可以用字母、数字、下划线命名,但是不能以数字开头在不上机的情况下,以下代码你能猜到屏幕会打印什么
2023-01-31

Android学习笔记——Menu介绍(三)

知识点 今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习。 Popup Menu(弹出式菜单) 弹出式菜单是一种固定在View上的菜单模型。主要用于以下三种情况: 为特定的内容提供溢出风格(overflow-style
2022-06-06

【Python3.7学习笔记】三、变量和

【Python3.7学习笔记】三、变量和简单数据类型【Python3.7学习笔记】一、环境搭建 【Python3.7学习笔记】二、第一个python程序 【Python3.7学习笔记】三、变量和简单数据类型 【Python3.7学习笔记】四
2023-01-31

学习笔记-小甲鱼Python3学习第十三

元组中的元素不能被修改。用()把元素括起来,用,逗号隔开创建和访问元组更新和删除元组元组的相关操作符元组创建:>>> tuple1 = (1,2,3,4,5,6,7,8)            #使用()括起来,用,逗号隔开>>> tupl
2023-01-31

Redis学习笔记(十三) 复制(下)

上一篇写了Redis复制功能的简单应用,下面我们看下Redis复制功能的实现过程。下面基本上是理论部分,枯燥乏味,但希望大家能看看,毕竟知识不都是感兴趣的.耐得住寂寞,经得起诱惑,方能守得住繁华 ~.~旧版复制功能的实现Redis的复制功能分为同步和命令传播两
Redis学习笔记(十三) 复制(下)
2022-04-20

Python学习笔记整理(十三)Pyth

一、模块模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。实际的角度,模块往往对应Python程序文件。每个文件都是一个模块,并且模块导入其他模块之后就可以使用导入模块定义的变量名。模块可以由两个语句和一个重要的内
2023-01-31

Java中反射的学习笔记分享

反射是Java编程语言中的一个特性。它允许执行的Java程序检查或 操作 自身,并操作程序的内部属性。本文将通过几个示例带大家详细了解一下Java中反射的使用,需要的可以参考一下
2022-11-13

python学习笔记(三)-表单处理

表单类 默认情况下,Flask-WTF能保护所有表单免受跨站请求伪造攻击(CSRF)app = Flask(__name__)# 强制性必须填写secret_keyapp.config['SECRET_KEY'] = 'hard to gu
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录