字符串函数

strlen(string);

获取字符串的长度,这里的长度是指该字符串的字节长度;!!utf-8里英文字母和符号占1个字节,中文是占3个字节。

substr(string,number1,number2)

截取字符串,number1是开始截取的位置,以0开始,number2是截取的长度。

strtolower  |  strtoupper

把字符串里的英文字母变小写  |  把字符串里的英文字母变大写

strrev

把字符串反转,是按字节来反转,所以反转汉字会出现乱码。

strpos(string,string的某个字符)

pos是position位置的意思,

所以该函数的作用就是从左往右查找并返回字符串中某个字符的起始位置!

strrpos(string,string的某个字符)

从右往左进行查找!也可以认为是从左往右最后一次出现该字符的位置!

strchr(string,string的某个字符)

也是截取字符串,是从左往右截取指定位置(指定的字符的位置)开始以后全部的字符串!

strrchr(string,string的某个字符)

是从右往左截取指定位置(指定的字符的位置)开始以后全部的字符串!

trim(string,\t\n\r\0\x08)

此函数去除首尾空白字符并返回结果。不写后面的参数就是删除空格。

str_repeat(string,number)

第一个是需要重复的字符串,第二个是重复的次数

时间函数

time

时间戳,格林威治1970年1月1日零时起,到现在的秒数!

date

使用时间格式占位符将指定时间戳格式化为对应格式的形式!

年:Y  月:m  日:d  时:H  分:i  秒:s

语法:  date(“带有格式占位符的字符串”,时间戳)

其中第二个参数(时间戳)可以省略,缺省值就是当前时间戳!

strtotime

将一个英文格式下的时间字符串,转换为一个时间戳!

microtime()

一般可以用来测试代码执行的效率!

得到一个微妙的时间戳字符串(字符串型),或加上一个参数true(默认值为false)之后得到一个微秒的时间(浮点型)


数组

创建数组语法

$arr = array(

  string1 => string,

  string2 => string,

  …………………………

  stringn => string

)

$arr ['string1'] = string;

$arr ['string2'] = string;

……………………………………

$arr ['stringn'] = string;

数组的遍历

除了用for循环来遍历,还可以用foreach来遍历

语法foreach(数组名 as $key(键变量) => $value(值变量)){

      循环体//对值变量和键变量的操作

}

键变量就是数组的索引值。

数组函数

接下来讲常用的和常见的数组函数

count

计算并返回数组中的元素个数或者对象中的属性个数!

在计算多维数组时是把一维数组的个数和一维数组元素里的数组个数相加。

count还有第二个参数,默认为false,如果系true,则支持递归统计。

range

建立一个包含指定范围单元的数组,有三个参数1,开始的字符或数字;2,结束的字符或数字;3,步伐:一次跳转几个字符或数字。

array_merge:

将几个数组合并成一个数组。一个数组中的值附加在前一个数组的后面。另外,运算符+也可以实现数组的合并;

array_rand:

随机抽取数组内的几个元素的键,并返回一个索引数组!

需要两个参数:1,数组名2,抽取的个数  !!省略掉第二个参数默认为1.

shuffle

打乱一个数组,只有一个参数 1.数组名

array_keys

获取所有元素的键,返回一个索引数组,只有一个参数 1.数组名

array_values

获取所有元素的值,返回一个索引数组,只有一个参数 1.数组名

array_combine

有两个参数,1数组名,这个数组作为新数组的键;2,数组名,这个数组作为新数组的值

组成一个新数组,要求两个数组的个数相同。

array_flip

交换数组的键和值

in_array

判断一个数据是否是某个数组里面元素的值!返回一个布尔值!

两个参数1具体数据;2数组名。

array_key_existe:

判断一个数组内是否存在某个键,返回一个布尔值

两个参数1具体数据;2数组名。

array_search

搜索数组内的某个元素的值, 并返回其下标值

两个参数1具体的值;2数组名

array_chunk

有两个参数1数组名,2要合并的值的多少

将一个数组里面的值合成一个数组,合成的值要多少个取决于第二个参数

implode

将一个数组元素的所有的值,利用一个指定的分隔符连接成一个字符串!

两个参数

1,分割符,这里可以省略,如果省略,那就是没有分隔符  2,数组名

explode

将一个字符串,利用其中的分隔符,将其分割成多个部分,形成一个数组!

两个参数

1,分隔符  2,字符串!

extract

将数组中的每一个元素都变成一个变量,其中变量的名字就是数组元素的键,变量的值就是数组元素的值!

只有一个参数,1,数组名

compact

利用多个变量,形成一个数组,数组元素的键就是变量的名字,数组元素的值就是变量的值!

array_map

对数组中的每一个元素,都由系统调用某个函数!

array_push

将一个或多个数据压入数组的尾部!

array_pop:

将数组的最后一个数据弹出

 array_unshift:

从数组的前面加入数据

array_shift:

从数组的前面弹出数据

sort

对数组中的元素进行升序排序,也就是从低到高!

排序之后,会丢失原数组的键,重新生成一个索引数组!

asort

也是升序排序,只是排序后会保留以前的键值对!

rsort

对数组元素的值进行降序排序,也就是从高到低:

排序之后会重新生成一个索引数组!

arstort

也是降序排序,只是会保留以前的键值对!

PHP入门part4的更多相关文章

  1. maven入门-- part4 坐标和依赖

    Maven的坐标为各种构件引入了秩序,任何一个构件都必须明确的定义自己的坐标,maven的坐标包括如下的元素: groupId: 定义当前Maven项目隶属的实际项目 artifactId: 该元素定 ...

  2. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  3. 【PyTorch深度学习60分钟快速入门 】Part4:训练一个分类器

      太棒啦!到目前为止,你已经了解了如何定义神经网络.计算损失,以及更新网络权重.不过,现在你可能会思考以下几个方面: 0x01 数据集 通常,当你需要处理图像.文本.音频或视频数据时,你可以使用标准 ...

  4. django入门-表单-part4

    尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6514113.html 完全翻译自官方文档 https://docs.djangoproje ...

  5. C语言编程入门之--第五章C语言基本运算和表达式-part4

    5.3.5 和二进制极为密切的运算符 本小节的运算符需要借助二进制概念来理解. 二进制数据中,比如一个字节的数据,它的十进制为228,二进制就为11100100,如图5.11, 注意:如果不懂怎么转换 ...

  6. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  7. [EntLib]微软企业库5.0 学习之路——第一步、基本入门

    话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在 ...

  8. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  9. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

随机推荐

  1. [转] 添加新的系统调用 _syscall0(int, mysyscall)

    实验目的阅读 Linux 内核源代码,通过添加一个简单的系统调用实验,进一步理解Linux操作系统处理系统调用的统一流程.通过用kernel module的方法来实现一个系统调用实验,进一步理解Lin ...

  2. 每次Xcode 升级之后 插件失效,两步解决

    以下内容来源:http://www.cocoachina.com/bbs/read.php?tid=296269 每次Xcode 升级之后 插件失效,两步解决 1.打开终端,输入以下代码获取到DVTP ...

  3. libev学习(一)

    一.libev简介 Libev是一个事件循环:你注册感兴趣的特定事件(比如一个文件可以读取时或者发生超时时),它将管理这些事件源,将这些事件反馈给你的程序.为了实现这些,至少要在你的进程(或线程)中执 ...

  4. tomcat 更新class文件

    在eclipse中写入新代码,debug并没有执行新的代码 原因:部署在tomcat的class文件没有更新,也就是当前的代码没有编译到tomcat的工作目录中 解决方案: project-clean ...

  5. Day25_多线程第二天

    1.单例); } 4.线程之间的通信(多个线程共享同一数据的问题) ; public void print1() throws InterruptedException { synchronized( ...

  6. robotframework接口测试初探3

    接口自动化环境搭建好了 requests接口测试模块也会用了 那么怎样整合到RF的框架呢? 写一个小例子

  7. 技海拾贝 - Java

    1. Java中的多线程 http://blog.csdn.net/luoweifu/article/details/46673975 Java中继承thread类与实现Runnable接口的区别 h ...

  8. SDWebImageManager.m:244:22: Too many arguments to function call, expected 0,have 5

    SDWebImageManager.m:244:22: Too many arguments to function call, expected 0,have 5选中项目 Build Setting ...

  9. Javascript中的数组方法总结

    1.concat():将两个或多个数组合并成一个数组 arrayObject.concat(arrayX,arrayX,......,arrayX),返回一个新的数据,arrayX可以是数值也可以是数 ...

  10. Surprise团队第一周项目总结

    Surprise团队第一周项目总结 团队项目 基本内容 五子棋(Gobang)的开发与应用 利用Android Studio设计一款五子棋游戏,并丰富其内涵 预期目标 实现人人模式:2个用户可以在同一 ...