概述
要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。
像其他变量一样,使用运算符=可以改变数组元素的内容。数组单元可以通过 array[key] 语法来访问。
数组的基本操作
php定义数组:
<?php $array = array(); $array["key"] = "values"; ?>
在PHP中声明数组的方式主要有两种:
1.用array()函数声明数组,
2.直接为数组元素赋值。
<?php //array数组 $users = array('phone','computer','dos','linux'); echo $users;//只会打印出数据类型Array print_r($users);//Array ( [0] => phone [1] => computer [2] => dos [3] => linux ) $numbers = range(1,5);//创建一个包含指定范围的数组 print_r($numbers);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) print_r(true);//1 var_dump(false);//bool(false) //print_r可以把字符串和数字简单地打印出来,数组会以Array开头并已键值形式表示,print_r输出布尔值和null的结果没有意义,因此用var_dump更合适 //通过循环来显示数组里所有的值 for($i = 0 ;$i < 5;$i++){ echo $users[$i]; echo '<br/>'; } //通过count/sizeof统计数组中单元数目或对象中的属性个数 for($i = 0; $i < count($users);$i++){ echo $users[$i]; echo '<br/>'; } //还可以通过foreach循环来遍历数组,这种好处在于不需要考虑key foreach($users as $value){ echo $value.'<br/>';//点号为字符串连接符号 } //foreach循环遍历 $key => $value;$key和$value是变量名,可以自行设置 foreach($users as $key => $value){ echo $key.'<br/>';//输出键 } ?>
创建自定义键的数组
<?php //创建自定义键的数组 $ceo = array('apple'=>'jobs','microsoft'=>'Nadella','Larry Page','Eric'); //如果不去声明元素的key,它会从零开始 print_r($ceo);//Array ( [apple] => jobs [microsoft] => Nadella [0] => Larry Page [1] => Eric ) echo $ceo['apple'];//jobs //php5.4起的用法 $array = [ "foo" => "bar", "bar" => "foo", ]; print_r($array);//Array ( [foo] => bar [bar] => foo ) ?>
从php5.4 起可以使用短数组定义语法,用 [] 替代 array()。有点类似于javascript中数组的定义。
each()的使用
<?php //通过为数组元素赋值来创建数组 $ages['trigkit4'] = 22; echo $ages.'<br/>';//Array //因为相关数组的索引不是数字,所以无法通过for循环来进行遍历操作,只能通过foreach循环或list()和each()结构 //each的使用 //each返回数组中当前的键/值对并将数组指针向前移动一步 $users = array('trigkit4'=>22,'mike'=>20,'john'=>30); //print_r(each($users));//Array ( [1] => 22 [value] => 22 [0] => trigkit4 [key] => trigkit4 ) //相当于:$a = array([0]=>trigkit4,[1]=>22,[value]=>22,[key]=>trigkit4); $a = each($users);//each把原来的数组的第一个元素拿出来包装成新数组后赋值给$a echo $a[0];//trigkit4 //!!表示将真实存在的数据转换成布尔值 echo !!each($users);//1 ?>
each的指针指向第一个键值对,并返回第一个数组元素,获取其键值对,并包装成新数组
list()的使用
list用来把数组用的值赋给一些变量,看下面例子:
<?php $a = ['2','abc','def']; list($var1,$var2) = $a; echo $var1.'<br/>';//2 echo $var2;//abc $a = ['name'=>'trigkit4','age'=>22,'0'=>'boy']; //list只认识key为数字的索引 list($var1,$var2) = $a; echo $var1;//boy ?>
注:list只认识key为数字的索引
数组元素的排序
反向排序:sort()、asort()和 ksort()都是正向排序,当然也有相对应的反向排序.
实现反向:rsort()、arsort()和 krsort()。
array_unshift()函数将新元素添加到数组头,array_push()函数将每个新元素添加到数组 的末尾。
array_shift()删除数组头第一个元素,与其相反的函数是 array_pop(),删除并返回数组末 尾的一个元素。
array_rand()返回数组中的一个或多个键。
函数shuffle()将数组个元素进 行随机排序。
函数 array_reverse()给出一个原来数组的反向排序
数组的各类API的使用
count()和 sizeof()统计数组下标的个数
array_count_values()统计数组内下标值的个数
<?php $numbers = array('100','2'); sort($numbers,SORT_STRING);//按字符串排序,字符串只比较第一位大小 print_r($numbers);//Array ( [0] => 100 [1] => 2 ) $arr = array('trigkit4','banner','10'); sort($arr,SORT_STRING); print_r($arr);//Array ( [0] => 10 [1] => banner [2] => trigkit4 ) shuffle($arr); print_r($arr);//随机排序 $array = array('a','b','c','d','0','1'); array_reverse($array); print_r($array);//原数组的反向排序。 Array ( [0] => a [1] => b [2] => c [3] => d [4] => 0 [5] => 1 ) //数组的拷贝 $arr1 = array( '10' , 2); $arr2 = &$arr1 ; $arr2 [] = 4 ; // $arr2 被改变了,$arr1仍然是array('10', 3) print_r($arr2);//Array ( [0] => 10 [1] => 2 [2] => 4 ) //asort的使用 $arr3 = & $arr1 ;//现在arr1和arr3是一样的 $arr3 [] = '3' ; asort($arr3);//对数组进行排序并保留原始关系 print_r($arr3);// Array ( [1] => 2 [2] => 3 [0] => 10 ) //ksort的使用 $fruits = array('c'=>'banana','a'=>'apple','d'=>'orange'); ksort($fruits); print_r($fruits);//Array ( [a] => apple [c] => banana [d] => orange ) //unshift的使用 array_unshift($array,'z');//开头处添加一元素 print_r($array);//Array ( [0] => z [1] => a [2] => b [3] => c [4] => d [5] => 0 [6] => 1 ) //current(pos)的使用 echo current($array);//z;获取当前数组中的当前单元 //next的使用 echo next($array);//a;将数组中的内部指针向前移动一位 //reset的使用 echo reset($array);//z;将数组内部指针指向第一个单元 //prev的使用 echo next($array);//a; echo prev($array);//z;倒回一位 //sizeof的使用 echo sizeof($array);//7;统计数组元素的个数 //array_count_values $num = array(10,20,30,10,20,1,0,10);//统计数组元素出现的次数 print_r(array_count_values($num));//Array ( [10] => 3 [20] => 2 [30] => 1 [1] => 1 [0] => 1 ) ?>
current():每个数组都有一个内部指针指向他的当前单元,初始指向插入到数组中的第一个元素
for循环遍历
<?php $value = range(0,120,10); for($i=0;$i<count($value);$i++){ print_r($value[$i].' ');//0 10 20 30 40 50 60 70 80 90 100 110 120 } ?>
数组的实例
array_pad函数的使用
<?php //array_pad函数,数组数组首尾选择性追加 $num = array(1=>10,2=>20,3=>30); $num = array_pad($num,4,40); print_r($num);//Array ( [0] => 10 [1] => 20 [2] => 30 [3] => 40 ) $num = array_pad($num,-5,50);//array_pad(array,size,value) print_r($num);//Array ( [0] => 50 [1] => 10 [2] => 20 [3] => 30 [4] => 40 ) ?>
size:指定的长度。整数则填补到右侧,负数则填补到左侧。
unset()的使用
<?php //unset()的使用 $num = array_fill(0,5,rand(1,10));//rand(min,max) print_r($num);//Array ( [0] => 8 [1] => 8 [2] => 8 [3] => 8 [4] => 8 ) echo '<br/>'; unset($num[3]); print_r($num);//Array ( [0] => 8 [1] => 8 [2] => 8 [4] => 8 ) ?>
array_fill()的使用
<?php //array_fill()的使用 $num = range('a','e'); $arrayFilled = array_fill(1,2,$num);//array_fill(start,number,value) echo '<pre class="brush:php;toolbar:false">'; print_r($arrayFilled); ?>
array_combine()的使用
<?PHP $number = array(1,2,3,4,5); $array = array("I","Am","A","PHP","er"); $newArray = array_combine($number,$array); print_r($newArray);//Array ( [1] => I [2] => Am [3] => A [4] => PHP [5] => er ) ?>
array_splice()删除数组成员
<?php $color = array("red", "green", "blue", "yellow"); count ($color); //得到4 array_splice($color,1,1); //删除第二个元素 print_r(count ($color)); //3 echo $color[2]; //yellow echo $color[1]; //blue ?>
array_unique删除数组中的重复值
<?php $color=array("red", "green", "blue", "yellow","blue","green"); $result = array_unique($color); print_r($result);//Array ( [0] => red [1] => green [2] => blue [3] => yellow ) ?>
array_flip()交换数组的键值和值
<?PHP $array = array("red","blue","red","Black"); print_r($array); echo "<br />"; $array = array_flip($array);// print_r($array);//Array ( [red] => 2 [blue] => 1 [Black] => 3 ) ?>
array_search()搜索数值
<meta charset="utf-8"> <?php $array = array("red","blue","red","Black"); $result=array_search("red",$array)//array_search(value,array,strict) if(($result === NULL)){ echo "不存在数值red"; }else{ echo "存在数值 $result";//存在数值 0 } ?>

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Linux new version
SublimeText3 Linux latest version

Notepad++7.3.1
Easy-to-use and free code editor

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Dreamweaver CS6
Visual web development tools
