①自定义数组:
$a = ['1','2','6','w','a' => 'q'];
$b = [['1','2'],['6','w'],['a' => 'q']];
②验证与返回值:
1. 检索给定的键名是否存在数组中
echo isset($a['a']); //返回1
2.返回数组的值
print_r(array_values($a)); //Array([0]=>1 [1]=>2 [2]=>6 [3]=>w [4]=>q)
3.返回数组的键名
print_r(array_keys($a)); //Array([0]=>0 [1]=>1 [2]=>2 [3]=>3 [4]=>a)
4.在数组中搜索,若存在则返回其键名,不存在返回false
echo array_search('w',$a); //返回3
5.判断某个值是否在数组中,在返回真,不在返回假
var_dump(in_array('7',$a)); //bool(false)
6.判断是否为数组,是返回真,不是返回假
var_dump(is_array($a)); //bool(true)
7.判断数组是否有某个键名,是返回真,不是返回假
var_dump(array_key_exists('a', $a)); //bool(true)
8.交换数组的键和值,返回新的数组,存在覆盖
print_r(array_flip($c)); //Array ( [2] => 1 [w] => b [q] => a )
9.数组顺序反转,保留索引关系
print_r(array_reverse($a, true)); //Array([a]=>q [3]=>w [2]=>6 [1]=>2 [0]=>1)
10.数组顺序反转,不保留索引关系
print_r(array_reverse($a, false)); //Array([a]=>q [0]=>w [1]=>6 [2]=>2 [3]=>1)
11.返回数组(多维数组)中某个单一列的值
print_r(array_column($b,0)); //Array([0]=>1 [1]=>6)
print_r(array_column($b,'a')); //Array ( [0] => q )
①自定义数组:
$c = ['2','2','w','a' => 'q','w','b' => 'w'];
②验证与返回值:
1.去除数组的重复值
print_r(array_unique($c)); //Array([0]=>2 [2]=>w [a]=>q)
2.统计数组值出现的次数,返回数组的KEY为原来数组的值,VALUE为值出现的次数
print_r(array_count_values($c)); //Array([2]=>2 [w]=>3 [q]=>1)
3.统计数组个数
print_r(count($c)); //返回6
print_r(sizeof($c)); //返回6
4.统计数组个数,参数"1"表示统计多维数组开启,默认0为关闭
print_r(count($b,1)); //返回8($b为一维+二维:8=3+5)
print_r(sizeof($b,1)); //同上
①自定义数组:
$d = ['1','w','a' => 'q'];
$e = ['4','d','s' => 'b'];
$f = ['a' => 'b'];
②验证与返回值:
1.截取数组,参数2从下标几开始,参数3取几个
print_r(array_slice($a,1,4)); //Array([0]=>2 [1]=>6 [2]=>w [a]=>q)
2.截取数组,并用给定数组替换;若参数3为0,是从第几个下标开始插入给定数组
array_splice($a,1,2,['s'=>'b']); print_r($a); //Array([0]=>1 [1]=>b [2]=>w [a]=>q)
array_splice($a,1,0,['s'=>'b']); print_r($a); //Array([0]=>1 [1]=>b [2]=>b [3]=>w [a]=>q)
3.合并俩数组,返回新数组(第一个数组值为键,第二个数组值为值)
print_r(array_combine($d,$e)); //Array([1]=>4 [w]=>d [q]=>b)
4.合并俩数组,返回新数组(若下标为数字不覆盖)
print_r(array_merge($d,$e)); //Array([0]=>1 [1]=>w [a]=>q [2]=>4 [3]=>d [s]=>b)
5.合并俩数组,返回新数组(若下标为字符且相同的,后面覆盖前面)
print_r(array_merge($d,$f)); //Array([0]=>1 [1]=>w [a]=>b)
6.合并俩数组,返回新数组(只要下标相同的,前面覆盖后面)
print_r($d+$e); //Array([0]=>1 [1]=>w [a]=>q [s]=>b)
7.用于比较两个(或更多个)数组的键值,并返回交集,保留索引关系
print_r(array_intersect($a,$d)); //Array( [0] => 1 [3] => w [a] => q )
print_r(array_intersect($d,$a)); //Array( [0] => 1 [1] => w [a] => q )
8.用于比较两个(或更多个)数组的值,并返回差集,保留索引关系
print_r(array_diff($d,$f)); //Array ( [0] => 1 [1] => w [a] => q )
print_r(array_diff($f,$d)); //Array ( [a] => b )
9.分割数组,返回一个二维数组,参数2为每个数组个数
print_r(array_chunk($d,2)); //Array([0]=>Array([0]=>1 [1]=>w) [1]=>Array([0]=>q))
10.将指定数量的带有指定值的元素插入到数组中,第二个参数为正在后边填充,为负在前边填充
print_r(array_pad($f,3,'php')); //Array ( [a] => b [0] => php [1] => php )
print_r(array_pad($f,-3,'php')); //Array ( [0] => php [1] => php [a] => b )
①自定义数组:
$g = ['a'];
$h = ['1','s','6','w','a' => 'q'];
②验证与返回值:
1.元素进队列
array_unshift($g,'b');print_r($g); //Array([0]=>b [1]=>a)
2.元素出队列
array_shift($g);print_r($g); //Array([0]=>a)
3.元素进栈
array_push($g,'b');print_r($g); //Array([0]=>a [1]=>b)
4.元素出栈
array_pop($g);print_r($g); //Array([0]=>a)
5.指针指向下一个单元
print_r(next($h)); // s
6.指针指向上一个单元
print_r(prev($h)); // 1
7.指针回归到开头
print_r(reset($h)); // 1
8.指针指向最后
print_r(end($h)); // q
9.返回数组中的当前单元,比如是关联数组是不知道下标,可以输出当前数组的办法解决
print_r(current($h)); // q
print_r(pos($h)); // q
10.返回当前指针指向元素的键值
print_r(key($h)); // a
11.销毁或释放次数组
unset($h);
①自定义数组:
$sort = ['1','3','w','s','2','a' => 'q'];
②验证与返回值:
通过元素值对数组排序
1.由小到大的顺序排序(第二个参数为按什么方式排序),忽略键名的数组排序
sort($sort );print_r($sort); //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => q [4] => s [5] => w )
2.由大到小的顺序排序(第二个参数为按什么方式排序),忽略键名的数组排序
rsort($sort );print_r($sort); //Array ( [0] => w [1] => s [2] => q [3] => 3 [4] => 2 [5] => 1 )
3.使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个),忽略键名的数组排序
usort($sort ,“function”);
4.由小到大的顺序排序(第二个参数为按什么方式排序),保留键名的数组排序
asort($sort );print_r($sort); //Array ( [0] => 1 [4] => 2 [1] => 3 [a] => q [3] => s [2] => w )
5.由大到小的顺序排序(第二个参数为按什么方式排序),保留键名的数组排序
arsort($sort );print_r($sort); //Array ( [2] => w [3] => s [a] => q [1] => 3 [4] => 2 [0] => 1 )
6.使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个),保留键名的数组排序
uasort($sort ,“function”);
通过键名对数组排序
7.按照键名正序排序
ksort($sort );print_r($sort); //Array ( [0] => 1 [a] => q [1] => 3 [2] => w [3] => s [4] => 2 )
8.按照键名逆序排序
krsort($sort );print_r($sort); //Array ( [4] => 2 [3] => s [2] => w [1] => 3 [0] => 1 [a] => q )
9.使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)
uksort($sort ,“function”);
自然排序法排序
10.自然排序(忽略键名)
natsort($sort );print_r($sort); //Array ( [0] => 1 [4] => 2 [1] => 3 [a] => q [3] => s [2] => w )
11.自然排序(忽略大小写和键名)
natcasesort($sort );print_r($sort); //Array ( [0] => 1 [4] => 2 [1] => 3 [a] => q [3] => s [2] => w )
①自定义数组:
$i = ['1','s','b','a' => 'q'];
$j = ['1','2','a','s' => '4'];
$k = ['id'=>'1','b'=>'2','s' => 'b'];
②验证与返回值:
1.快速创建0,5的数组,返回新索引数组
print_r(range(0,5)); //Array([0]=>0 [1]=>1 [2]=>2 [3]=>3 [4]=>4 [5]=>5)
2.第三个参数为步进值,假设为2,就有3个值
print_r(range(0,5,2)); //Array([0]=>0 [1]=>2 [2]=>4)
3.随机返回数组当中的下标key,返回值为值
print_r(array_rand($i)); //0或1或2或a
4.随机返回数组当中的下标key,第二个参数为返回的个数,返回值为数组
print_r(array_rand($i,2)); //可能为Array([0]=>1 [1]=>a)
5.返回数组的值的和
print_r(array_sum($j)); //返回7(7=1+2+4)
6.打乱数组顺序,删除原有下标,返回索引数组(即不保留索引关系)
shuffle($j);print_r($j); //Array([0]=>2 [1]=>1 [2]=>4 [3]=>a)
7.把关联数组转换成一个经过urlencode加密的URL
print_r(http_build_query($k)); //id=1&b=2&s=b
8.将值(b)赋给键(s)的变量
extract($k);echo $s; // b
9.把数组中的值赋给list中的变量(关联键的不会赋值,如下:$dd为空)
list($aa, $bb, $cc,$dd) = $i ;
echo "$aa,$bb,$cc,$dd"; //1,s,b,
10.创建一个包含变量名和它们的值的数组
$a = 'aa';
$b = 'bb';
print_r(compact("a", "b")); //Array ( [a] => aa [b] => bb )