一、array()

1、array_merge(array,array,array,array …)

{return array}依次拼接数组

  1. //代码
  2. $array1=array(1,2,3,4,5);
  3. $array2=array(6,7,8,9,10);
  4. $array3=array_merge($array1,$array2);//拼接
  5. print_r($array3);
  6. //运行结果
  7. Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 )

如果我们继续到后面追加array,他讲会继续追加在数组中

//代码
$array1=array(1,2,3,4,5);
$array2=array(6,7,8,9,10);
$array3=array(11,12,13,14,15);
$array4=array_merge($array1,$array2,$array3);//拼接
print_r($array4);
//运行结果
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5[5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 11
[11] => 12 [12] => 13 [13] => 14 [14] => 15 )

2、explode (delimiter, string, $limit = null)

{return array} explode 是爆炸的意思,我们就可以相当把字符串爆炸成一个数组

1.delimiter 从某个字符开始打断

作为分割用的字符将当作标识符,数组不会出现啦

2.string 需要打断的字符窜

3.limit 当不输入这个值的时候,打断所有,输出之后,从第一位开始打几次

//代码
$str='1,2,3,4,5,6';
$arr=explode(',',$str);
print_r($arr);

//运行结果
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

那么limit 是什么意思呢?下面我们通过列子来得出结果

//代码
$str='1,2,3,4,5,6';
$arr=explode(',',$str,2);
print_r($arr);

//运行结果
Array ( [0] => 1 [1] => 2,3,4,5,6 )
//代码
$str='1,2,3,4,5,6';
$arr=explode(',',$str,4);
print_r($arr);

//运行结果
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4,5,6 )
第三个值为4 所以从一位开始数,总共打断了四位

3、implode (glue = “”, array pieces)

{return string} 把数组里面的每一个值链接成一个字符串
//还有一个join函数 用法与implode一致

//代码
$arr=array(1,2,3,4,5,6);
$string=implode($arr);
print_r($string);

//运行结果
123456

当输入第一个值的时候

//代码
$arr=array(1,2,3,4,5,6);
$string=implode('!',$arr);
print_r($string);

//运行结果
1!2!3!4!5!6  
第一个值 两值之间的连接符号

4、 str_split (string, split_length = 1)

{return array}

长度作为分割条件,默认是 1

$str='123456';
$arr=str_split($str);
print_r($arr);

//运行结果
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

当输入第二个值的时候

$str='123456';
$arr=str_split($str,3);
print_r($arr);

//运行结果
Array ( [0] => 123 [1] => 456 )  
split_lenth的意思是每几个字符分割成一个数组。不填默认唯一

5、array_unique(array array, sort_flags = null)

{return array}

去除数组中重复的值

应该是剔除重复值的元素,使之剩下一个(保留的是重复值的第一个,其他的包括键值都会被去除)

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

//运行结果
Array ( [0] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 ) 
数组中重复的1被删除了 只留下了一个

6、array_keys($array)

取出数组中的键值,并组合成一个数组

$arr=array(1,3,4,5,"0"=>564646);
$arr2=array_keys($arr);
print_r($arr2);
//输出
Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
)

7、array_values($array)

取出数组中值

$arr=array(1,3,4,5,"a"=>564646);
$arr2=array_values($arr);
print_r($arr2);
//输出
Array
(
    [0] => 1
    [1] => 3
    [2] => 4
    [3] => 5
    [4] => 564646
)

8、array_pop($array) 取出数组中最后一个值(与end函数用法一致)

$arr=array(1,2,3,4,5,6);
$arr2=array_pop($arr);
print_r($arr2);
//运行结果
6

9、array_shift($array)

取出数组中第一个值 (与reset函数用法一致)

10、array_push(array,vaule…)

把值追加在数组的最后一位
等价于arr[]=arr[ ]=arr[]=vaule;

$arr=array('1','2','3','4','5','6');
array_push($arr,'2','3');
print_r($arr);
//运行结果
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 2 [7] => 3 )

11、array_unshift(array,vaule…)

在数组开头插入一个或多个单元

$arr=array('1','2','3','4','5','6');
array_unshift($arr,'2','3');
print_r($arr);
//运行结果
Array ( [0] => 2 [1] => 3 [2] => 1 [3] => 2 [4] => 3 [5] => 4 [6] => 5 [7] => 6 )

12、count(array)

返回数组长度

13、shuffle(array)

打乱数组(该函数所以打乱的顺序是随机的)

$arr=array('1','2','3','4','5','6');
shuffle($arr);
print_r($arr);
//运行结果
Array ( [0] => 2 [1] => 3 [2] => 1 [3] => 4 [4] => 6 [5] => 5 )

14、in_array($str, $array, $k=false)

判断字符和array的相关操作 - 图1array的

  • 第二个参数为数组
  • 第三个参数默认false,为 ==
  • 第三个参数改为true,为===
$str="111";
$array=[0=>"222","111"=>"555",2=>111];
in_array($str, $array, false) //返回true
in_array($str, $array, true)  //返回false

基本常用的大概只有这些了,后续的用法会继续添加

15、array_key_exists(需要判定的键名,数组)

$str="111";
$array=[0=>"222","111"=>"555",2=>111];
array_key_exists($str, $array); //返回true

16、array_flip(array)

$list = [];
for($i = 0; $i < 1000000; $i++) {
    $list[] = $i;
}
for($i = 0; $i < 1000000; $i++) {
    $list['a' + $i] = $i;
}
$startTime = time();
array_flip(array_flip($list));
$endTime = time();
var_dump($startTime, $endTime);
  • 键值替换
  • 连续使用俩次,可以达到去重的效果
  • 如果是要去重,使用俩次array_flip比使用array_unique快5倍:俩次array_flip保留的是后面重复的值;array_unique保留的是前面重复的值

    二、字符串

1、str_replace($str1, $str2, $str)

匹配查找字符和array的相关操作 - 图2str1的部分,并将其替换为$str2(在改次字符中,不能被拿去二次替换)。

在 $str2 为字符串的前提下

  • $str1可为 数组或字符串,规定了匹配的字符
  • $str为字符时,返回字符;为数组时,返回数组;数组中每一个元素都依 $str1 进行匹配。
  • 匹配到的以 $str2替换

在$str2为 数组的前提下

  • $str1可为 数组或字符串,规定了匹配的字符
  • $str为字符时,返回字符;为数组时,返回数组;数组中每一个元素都依 $str1 进行匹配。
  • $str1为数组时, 则此时 替换的字符 为 $str2中与之位置对应的字符(若没有对应的字符,则以 ‘’ 替换)。