php5 array,PHP(5)数组

一、创建数组(四种方式)

索引数组:下标为数字

关联数组:下标为字符

多维数组:数组里面包含数组

通过 array() 形式创建

通过[]动态创建

通过range()和compact()快速创建索引数组和关联数组

// 使用range创建索引数组

$arr = range(0,20,2); // 第三个参数是步长

print_r($arr); // 打印0到20 的偶数

// 使用compact快速创建关联数组

$username='king';

$age=12;

$email='382771946@qq.com';

$userInfo3=compact('username','age','email'); // 名字与变量名相同,不需要加$符号

print_r($userInfo3);

// Array

// (

// [username] => king

// [age] => 12

// [email] => 382771946@qq.com

// )

通过define()或const定义常量数组

二、其他类型转换成数组

临时转换 --- (array)$var

永久转换 --- settype($var,"array")

标量类型转换成数组,只有一个元素,键名为0,键值为变量的值

null转换成数组是空数组

不要把对象和资源转换成数组

三、添加和删除数组

添加

1.动态添加 --- $arr[3] = 'c';

2.数组头添加 --- array_unshift($arr,1,2);

3.数组末尾添加 --- array_push($arr,1,2);

删除

1.动态删除 --- unset($arr[1]);

2.数组头删除 --- array_shift($arr);

3.数组末尾删除 --- array_pop($arr);

四、数组的遍历

while list each遍历

list --- 把右边的索引数组依次赋值给左边的变量,只对索引数组有效

list($a,$b) = array('js','html');

echo $a; // js

echo $b; // html

each --- 把数组的第一项取出来组成一个新数组,可以叠加,也就是说第二次取的是第二项

Array

(

[1] => linux

[value] => linux

[0] => item1

[key] => item1

)

print_r(each($arr));

while list each配合遍历

while(list($key,$val)=(each($arr))){

echo $key,'---',$val;

}

foreach()遍历

foreach($arr as $key=>$val){

echo $key,'---',$val;

}

五、数组函数

$arr=array(

'item1'=>'linux',

'item2'=>'php',

'item5'=>'html5',

'item6'=>'html5',

'item7'=>'html5',

);

in_array('jack', $arr, false)

在数组中搜索一个特定值,找到这个值则返回 true,第三个参数表示还要判断其类型,默认不判断

array_key_exists('item1',$arr)

在数组中找到一个指定的键,找到返回 true

array_search('jack', $arr, false)

在数组中搜索一个特定值,找到则返回对应的键,第三个参数表示还要判断其类型,默认不判断

array_keys($arr, [value])

获取数组中的键组成一个索引数组,如果指定value的话,则只返回value的键

array_values($arr)

获取数组中的值组成一个索引数组

arrar_flip()

把键和值对调

array_reverse()

反转数组的位置

统计数组的元素和唯一性

count()

统计数组的个数

array_count_values

统计数组中值出现的次数

Array

(

[linux] => 1

[php] => 1

[html5] => 3 // 出现了三次

)

array_unique()

去掉数组中的重复值,返回一个新数组

Array

(

[item1] => linux

[item2] => php

[item5] => html5

)

使用回掉函数处理数组

array_filter()

依次将数组中的每个值传递到回调函数。如果回调函数返回 TRUE ,则返回

$arr = array(0,22,true,false,array(),null);

$res = array_filter($arr);

print_r($res);

结果,默认过滤为假的值

Array

(

[1] => 22

[2] => 1

)

$arr = array(1,2,3,4,5,6);

$res = array_filter($arr,'odd'); // 传入回调函数

function odd($var){ // 需要携带参数

return $var%2===0; // 只返回达到条件的偶数

}

print_r($res);

结果

Array

(

[1] => 2

[3] => 4

[5] => 6

)

array_map()

使用回调函数作用与数组中的每一个值

$arr = array(1,2,3,4,5,6);

$res = array_map('odd',$arr); // 回调函数写前面

function odd($val){

return $val+1; // 把数组的每一个值都加了一

}

print_r($res);

结果

Array

(

[0] => 2

[1] => 3

[2] => 4

[3] => 5

[4] => 6

[5] => 7

)

数组的排序,不会生成新数组,但会直接改变数组

sort()

不保留原数组key的升序排序(小到大),原数组key从下标 0 开始变成索引数组,返回布尔值,字母 a 开始

rsort()

不保留原数组key的降序排序(大到小),返回布尔值

asort()

保留原数组key的升序排序(小到大),原数组的key不变,跟着一起排序

arsort()

保留原数组key的降序排序(大到小),原数组的key不变,跟着一起排序

ksort()

按键(key)的升序排序

krsort()

按键(key)的降序序排序

natsort()

自然数排序,第一个字母 a 开始,大写的不忽略,排在小写的前面

natcasesort()

忽略大小写的自然数排序,第一个字母 a 开始

array_multisort()

一个数组对另一个数组的排序

$arr=array(

'title1'=>'linux',

'title2'=>'linux is very much,and i love small ma',

'title3'=>'php is very much',

'title4'=>'js'

);

foreach($arr as $val){

$row[]=strlen($val);

}

array_multisort($row,SORT_DESC,$arr); // 中间的参数表示降序

echo '

';

print_r($arr); // 按数组值的长度升序排序

echo '

';

数组的截取与合并函数

array_slice()

数组的截取,从多少开始开始截取多少个

$res = array_slice($arr,2,3); // 从二开始截取三个,包括二

$res = array_slice($arr,2); // 从二截取到末尾

$res = array_slice($arr,-3); // 截取最后三个

array_splice()

数组的替换,数组的第三个参数表示替换,如果不传第三个参数,效果跟slice一样,不同点是会改变原数组

array_combine()

数组的合并,第一个数组是第二个数组的key,键值合并,长度没有增加

array_combine($arr3,$arr2);

把数组arr3作为key,arr2作为值合并成一个数组

array_merge()

合并数组,两个数组都作为值,长度为两个数组的长度和

数组的拆分连接函数

explode()

把字符串变成数组

$arr2 = '2018-03-17';

$res = explode('-',$arr2); // 以横杆来分割

Array

(

[0] => 2018

[1] => 03

[2] => 17

)

implode()

把数组连接成字符串

$arr2 = array('2018','03','17'); // 以横杠来连接

$res = implode('-',$arr2); // 2018-03-17

join()

跟implode函数一样

数组与数据结构,会改变原数组

array_pop($arr)

删除数组最后一个值并且返回

array_push($arr, $value)

把值添加进数组的最后面

array_shift()

删除数组的第一个值并且返回

array_unshift()

把值添加进数组的最前面

其他函数

range()

快速生成有规律的数组

array_sum()

计算数组值之和

shuffle()

随机打乱原数组的顺序

array_rand()

从数组中随机去一个key,利用这个随机key来随机获取值

实例:5位随机验证码

$arr = array_merge(range(0,9),range('a','z'),range('A','Z')); // 合并三个数组

shuffle($arr); // 打乱数组

$arr2 = array_slice($arr,0,5); // 取出前五个值

$str = join('',$arr2); // 合并

print_r($str); // 生成随机验证码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP中的数组Array)是一种用于存储多个相同类型数据的容器,可以通过单一变量名来访问数组中的每个元素。 以下是一些PHP数组的基本知识: 1. 数组元素可以是任何数据类型,包括整数、浮点数、字符串、对象等; 2. 数组元素的下标可以是整数或者字符串; 3. 如果一个数组的下标是整数,那么它将被当做索引数组来处理,否则将被当做关联数组处理; 4. PHP数组是动态的,可以随时添加或删除元素; 5. 数组元素可以通过下标访问,下标可以是变量; 6. PHP提供了一系列数组函数,可以用来操作数组。 创建数组 可以使用array()或者[]来创建一个数组,例如: // 使用array()语法创建数组 $arr1 = array('apple', 'banana', 'orange'); // 使用[]语法创建数组 $arr2 = ['apple', 'banana', 'orange']; 可以使用数组下标访问数组元素,例如: echo $arr1[0]; // 输出apple echo $arr2[1]; // 输出banana 添加元素 可以使用下标为一个数组添加元素,例如: $arr = ['apple', 'banana', 'orange']; $arr[3] = 'peach'; 也可以使用array_push()函数向一个数组添加元素,例如: $arr = ['apple', 'banana', 'orange']; array_push($arr, 'peach', 'pear'); 删除元素 可以使用unset()函数删除一个数组元素,例如: $arr = ['apple', 'banana', 'orange']; unset($arr[0]); 也可以使用array_pop()函数删除一个数组末尾的元素,例如: $arr = ['apple', 'banana', 'orange']; array_pop($arr); 遍历数组 可以使用foreach()函数来遍历一个数组,例如: $arr = ['apple', 'banana', 'orange']; foreach ($arr as $value) { echo $value . '<br>'; } 也可以同时获取数组元素的下标和对应的值,例如: $arr = ['apple', 'banana', 'orange']; foreach ($arr as $key => $value) { echo $key . ' - ' . $value . '<br>'; } 数组函数 PHP提供了一系列数组函数,可以用来操作数组,例如: count():返回数组中元素的个数; array_merge():合并两个或多个数组array_reverse():将一个数组中的元素顺序颠倒; array_search():在数组中查找指定的值,并返回其对应的下标; in_array():判断一个值是否在数组中存在; sort():对数组进行排序; ksort():按照数组的键进行排序。 以上仅是PHP数组的基本知识,PHP数组的用法还有很多其他特性,需要读者自行学习和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值