悠悠楠杉
网站页面
数组是一个复合数据 , 里面放了很多数据
print_r() 将里面所有的数据都打印了出来
需要对数组的具体单元进行操作
数组单元的 增 , 删 , 改 , 查
1、单独取出某一个单元的值 , 用健来取 $ 数组名 [ 健 ]
$arr = array('a','b','c');
echo $arr[1],'<br >';
2、取出二维数组的值
数组的层级顶多到 3 层 , 否则人无法直观的理解
$arr2 = array('name'=>'lisi','hobby'=>array('basketball','football','pingpang'));
echo $arr2['hobby'][0];
3、更改一个数组单元的值
$arr2['hobby'][0] = 'swiming';
print_r($arr2);
4、增加一个数组单元
$arr2['area'] = 'beijing';
print_r($arr2);
$arr2['area'] = 'shanghai';
print_r($arr2);
5、删除数组单元
unset($arr2['hobby']);
print_r($arr2);
6、取出关联数组最后一个键
echo key(array_slice($arr,-1,1,TRUE));
echo end(array_keys($arr));
echo array_pop(array_keys($arr));
echo array_key_last($arr);// PHP7.3以上
echo $arr[count($arr)-1];//取数值数组
array_push 将一个或多个单元压入数组的末尾
$arr = array('a','b','c');
array_push($arr,'d');
print_r($arr);
array_pop 将数组最后一个单元弹出
$arr = array('a','b','c');
array_pop($arr);
print_r($arr);
array_shift 将数组开头的单元移出数组
$arr = array('a','b','c');
array_shift($arr);
print_r($arr);
array_unshift 在数组开头插入一个或多个单元
$arr = array('a','b','c');
array_unshift($arr, 'wow');
print_r($arr);
array_sum 计算数组中所有值的和
$arr = array('1','2','3');
print_r($arr);
echo array_sum($arr);
array_merge 合并一个或多个数组
$array1 = array( "color" => "red" , 2 , 4 );
$array2 = array( "a" , "b" , "color" => "green" , "shape" => "trapezoid" , 4 );
$result = array_merge ( $array1 , $array2 );
print_r ( $result );
array_merge_recursive 递归地合并一个或多个数组
$ar1 = array( "color" => array( "favorite" => "red" ), 5 );
$ar2 = array( 10 , "color" => array( "favorite" => "green" , "blue" ));
$result = array_merge_recursive ( $ar1 , $ar2 );
print_r ( $result );
array_combine 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
$a = array( 'green' , 'red' , 'yellow' );
$b = array( 'avocado' , 'apple' , 'banana' );
$c = array_combine ( $a , $b );
print_r ( $c );
serialize 产生一个可存储的值的表示
$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');
//序列化数组
echo serialize($a);
//输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";}
unserialize 从已存储的表示中创建 PHP 的值
$a = 'a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";}';
print_r(unserialize($a));
/*Array
(
[a] => Apple
[b] => banana
[c] => Coconut
)*/
array_unique 移除数组中重复的值
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
array_reduce 用回调函数迭代地将数组简化为单一的值
//二维数组转成一维数组
$arr = [
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5]
];
$result = array_reduce($arr, 'array_merge', array());
print_r($result);
array_rand 从数组中随机取出一个或多个单元
<?php
$input = array( "Neo" , "Morpheus" , "Trinity" , "Cypher" , "Tank" );
$rand_keys = array_rand ( $input , 2 );
echo $input [ $rand_keys [ 0 ]] . "\n" ;
echo $input [ $rand_keys [ 1 ]] . "\n" ;
?>
数组排序
sort() // 以升序对数组排序
rsort() // 以降序对数组排序
asort() // 根据值,以升序对关联数组进行排序
ksort() // 根据键,以升序对关联数组进行排序
arsort() // 根据值,以降序对关联数组进行排序
krsort() // 根据键,以降序对关联数组进行排序
$cars=array("porsche","BMW","Volvo");
sort($cars);
print_r($cars);