PHP基础:操作PHP数组

PHP零基础入门

操作PHP数组:在终端学习常用PHP函数对数组函数的处理方法,我们已经学习不同类型的数组,这节课介绍如何操作数组,如果我在数组的前面添加项目,在数组后面添加项目,删除数组的项目,一个函数是如何声明的,该函数的结果是什么,在不打开浏览器情况下查看代码运行情况。

操作PHP数组-在ubuntu操作系统终端操作

但是默认情况下PHP提供的并不是最好的东西,在LAMP开发环境下打开php命令,输入php -h,这将显示php我们可以做的各种各样的命令,而php确实有这个交互式shell,php -a,进入交互模式:

输入2 + 2

没有显示4,可能是没有添加分号;还是不行。

如我们输入 :

显示出来了,但是没有语法突出显示,它全部显示在同一行上,我们可以尝试输出字符串和字符串,这将允许我做的是确定是否一个特定的字符串大写或小写在更大的字符串内发生:

现在你会看到返回的是匹配:

所以在这种情况下,它确实发现该字符串,所以它从那个点返回。但是,你可以想像,这不是很直观。除此之外,我们可以使用facebook开发一个工具叫php shell

下载好了之后,因为使用python的开发的,我就在ubuntu服务器上面演示,如果是win10需要安装python,安装phpsh,全局安装参考http://www.huihoo.org/gnu_linux/ch-doslinux.html

phpsh

h 帮助文档

d 文件

所以如果你想使用一个功能,但你不完全知道如何使用它,不需要打开php.net和处理功能,你只需在这里打开shell。函数,所以它接受字符串,这是你的haystack,这里是它接受的参数,所以它接受字符串,这是你hastack,下一个参数是$needle,这只是你所寻找的东西,什么是我们正在寻找的haystack或集合,感叹号 !执行shell命令。

在php,它将会假定您输入的所有内容都是php命令,但是如果你真的要作为shell命令执行,你可以预先设一个感叹号:

我们实际上可以从命令行操作这些函数目录,而无需创建新的脚本:

例如,第一个项目,我们可以使用echo或者PHP shell提供的简写,你无法在Web项目中使用,但是当你在shell中时,可以使用它:

所以现在我们要等于几个月,然后得到数组中的第一个项目:

所以你可以看到这是一个简单的互动方式玩PHP,你正在试图找出一些有用的东西,在命令行中直接执行,这更容易。开始学习新的函数,我们可以使用数组推送,也可以使用速记。

操作PHP数组-array_push将值推送到数组

我将输入array_push将传递两个参数

并且通过参数我所指的是值或变量,您将传入该函数,以便它可以与它们一起工作,如果你可以想象,对于一个函数,一个函数只是一些代码,可以被抽取出来再次使用,想像成这样。

这个函数,需要知道一些信息,我正在使用什么数组,我要添加一个值的数组,然后也需要知道,我要添加到这个数组中的是什么价值,我们需要提供。顺序很重要,有时候我们需要看文档看看顺序是怎么写。

array_push函数如何工作

接下来,我们将使用逗号分隔这些参数,而第二个将是,我添加什么值,添加是june,像这样添加:

让我们执行,没有显示任何东西,如果输出print_r($months),我们添加的June也跟着显示出来,现在实际上还有一个简单的方法来做到这一点,而不是使用array_push函数。我们可以这样简单做,months,然后我会打开方括号,这是跟array_push相同的:

一个例子我们用push_array,在另一例子,我们键入变量名称,我们打开方括号。我们不添加任何东西,但如果我们需要,我们就添加,然后我们添加我们的值,这是你看到将值推送到数组的最常见方式。

操作PHP数组-array_pop将值从数组删除

但是如果我想从数组中删除一个项目,该怎么办?我要删除july,只要想想那就是弹出一个气球,会从阵列中弹出最后一个。

这一次它不需要两个值,因为array_pop意味着从数组中删除最后一个项目,所以它不需要知道别的数组删除最后一个项目:

July被删除,这就是这个函数的优势,他们不仅会执行我们的期望,但也会返回他们操作的东西,例如,如果我们再次执行array_pop,回到之前的命令:

这一次,它pop出最后一个项目,这将是june,它将june的价值,并将其存储在变量月份:

所以当你想从数组中取值时,这样就很有用,但是你仍然想要访问该值,也许在某个时候操作它,这就是所有的array pop 和array push所有这些功能。

让我们再次print_r($months);

现在我们知道用array_push添加项目,我们知道用array_pop删除项目。

操作PHP数组-array_shift删除数组中第一个项目

但是如果你真的想从一开始就删除一个项目应该怎么做?我不想删除最后一个项目,我要删除第一个项目,在这种情况下,我们使用array_shift的函数,这个命名有点混乱,array_shift,然后你还会发现我们有array_unshift,他们并没有像我们希望的那么有表现力。这个例子,array_shift会移除你提供数组的第一个项目,所以我们提供的数组是$months:

你会看到第一个项目被删除,如果我将一个项目添加到数组,而不是添加到数组的末尾,该怎么办?我想添加一个项目到数组的开头,或者在我们这种情况下,我只想添加一月到数组开始,你使用相反的shift,你使用array_unshift:

我们用正在使用的数组,第二个参数是你添加到数组开始的值:

恢复跟原来一样了,要把上述方法记住,你有array_push用于添加在末尾添加项目,array_pop用于删除项目,回到php.net搜索array,找到array function,不要记住所有这些array函数。

操作PHP数组-array_slice

array_slice提供的数组作为第一个参数,第二个参数将成为一个数字或一个整数,就像我们所说的那样。

这将要做的是它将从那时起返回数组的其余部分,所以从2这里开始,我们不要两个项目,从2那一点切断。现在你可能会想知道,为什么不从b开始。b为第二位,数组是0,所以我们从0,1,2,我们从2开始,然后我们从这一点开始切断。

现在我们来说说要从4月份开始,我们用array_slice,$months,我们想从哪里开始?所以你会从0,1,2,3,他们为我们提供了这个价值[3],
有个小技巧,他们是从0开始,我们只需减去1。例如,我们想要从3月份开始,那是第三项,3减1是2。所以我们要得到第二个索引。

我们正在执行一个返回一个新数组的函数,但是我们没有在任何地方存储该结果。所以它只是消失了,所以这一次我们要说,output等于array_slice,months,2。

我们这个新修改的数组包含的项目,但是我们还有$months,没有收到影响,就像我们希望的那样:

我们还有$months,而且还是完好无损,就像我们希望的那样,现在有一个可选的第三个参数,我们可以传递给array_slice:

如果提供了该参数,该参数将指定从该点获取的参数:

所以让我们说,我们要在2月和3月分割,你可以创建一个存储包含二月和三月的数组的变量,创建一个新的变量叫$output,执行array_slice

接下来,我们从哪里开始,我们在二月开始,那是索引1。

现在,我需要2个月,2月和3月,所以我要指定从这里开始要获取2个月,总共2个月:

我们这个新的数组包含2月和3月

没有被影响,我们没有毁坏或破坏这个原始的数组。

但是现在确实存在一个问题,如果你想要过滤这个数组,你可以使用数组过滤器,我如何将参数传递给数组过滤器,输入d array_filter 查看array filter语法。

我们将在$months运行数组过滤器,我们要传递一个回调函数。如果我们使用PHP 5.3,我们可以使用所谓的lambda,或者您可以将其视为匿名功能,或一个真正只用于一次的功能,所以我们会在这里传递一个函数,array_filter会做什么,它会接受该项,而这个函数将返回true或false,工作的方式是如果它返回true,那么该方法将保留在数组中,但是如果它返回false,它将从数组中删除,这个例子让我们弄清楚要过滤的东西,由于某些原因,我们要将此数组过滤到只有三位字符月份的项目,我们可以返回true或false。

但当然这需要动态,我们需要编写一个测试来确定是否为真,我们的测试将会是,字符串的长度是三个字符,php提供了一个名为strlen的函数,字符串长度,在这种情况下,它将接受值的项目,请记住,在这种情况下,我们将用数组进行过滤,对于每一个,该项将被item变量引用,
但你可以调用任何你想要的东西,你可以称之为项目或月份或任何东西。

它只是你创建的一个变量,所以现在我们的测试将要检查字符串的长度,我们将要测试看它是否等于3,我们将在未来的课程中详细解释这些语法:

我们已经运行了我们的过滤器,我们正在传递数组,我们正在通过我们的测试,想到array_filter作为测试,如果月份长度恰好是三个字符,所以我们要做的是将结果分配给一个变量,这个变量叫$three:

我们现在使用数组过滤器函数来指定我们要创建这个新的数组,但它只能包含三个字符长的项目。那就是使用数组过滤功能,今晚课程结束之前,如果要将项目添加到数组,你可以使用数组这个语法:

你可以使用array_push,接着$arr,然后就是值:

移除数组最后一个项目,用array_pop,添加项目在数组开始,用array_unshift,删除项目在数组开始,用array_shift,array_slice和array_filter,今晚我知识学习了数组的10%,还有很多,如果你们感兴趣可以自己学习,array_map和array_walk。

接近10年的互联网从业经验,精通Scrum敏捷软件开发的方法,从事互联网产品设计,开发,测试,运营,案例不少于20个,发现自己最喜欢的工作是做外贸营销,外贸SEO,特别喜欢谷歌优化。从2017年3月开始坚持在群161510483直播谷歌SEO和WEB前端开发技术,只要加进来坚持学习零基础也能够学会。

Last modified: 2019年3月21日

Previous Story

PHP零基础入门

第六节 PHP数组

PHP数组:允许我们在单个变量中存储多个值的数据结构,如果需要对相关项目进行分组你应该要熟悉变量,例如一年中的几个月,每月创建十二个变量是否有意义.

...

Next Story

PHP零基础入门

PHP基础:PHP条件语句

PHP条件语句:特别学习if,switch语句,如何创建自己的lookups,如果if语句返回true,那么做某事,如果它返回false,会发生什么?

...