php数组
<?php
// 创建数组
$a = array(1,2,3); //数组下标为数字,值为1,2,3
// $b = range(a, f); //数字a-f
$b = range(1, 5); //数字1-5
$c = array('姓名'=>'张三','性别'=>'男'); //自定义键数组
//使用print_r()打印数组
print_r($a); // Array ( [0] => 1 [1] => 2 [2] => 3 )
print_r($b); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
print_r($c); // Array ( [姓名] => 张三 [性别] => 男 )
//访问数组某一项
echo $a[0]; // 1
echo $b[0]; // 1
// echo $c[0]; //自定义键不可使用数字下标 出错
echo $c['姓名']; //张三
//遍历数组
//使用for循环
for($i = 0;$i<count($a);$i++){
echo $a[$i]; // 123
}
for($i = 0;$i<count($b);$i++){
echo $b[$i]; // 12345
}
//自定义键可以使用foreach()方法遍历 数字键也可以
// foreach ($c as $key => $value) {
// echo $value; //张三 男
// }
echo "<br/>";
// 自定义键可以使用each()和list()
// $user = array('姓名'=>'张三','性别'=>'男');
list($key,$value) = each($c); //不可以和foreach一起用
echo $key; //姓名
echo $age; //张三
//多重数组遍历
$p = array(
array('苹果' ,6,6),
array('香蕉',5,5),
array('饼干',4,4)
);
// 双重循环
for($rows = 0;$rows<count($p);$rows++){
for($i = 0;$i<count($p[$rows]);$i++){
echo $p[$rows][$i]; //苹果66香蕉55饼干44
}
}
//使用foreach
for($i = 0;$i<count($p);$i++){
foreach ($p[$i] as $key => $value) {
echo $value; //苹果66香蕉55饼干44
}
}
// 使用list和each
for($i = 0;$i<count($p);$i++){
while(list($key,$value) = each($p[$i])){
echo $value; //不可以和foreach一起用
}
}
// 数组的排序
$x = array(2,1,3);
sort($x);
print_r($x); //Array ( [0] => 1 [1] => 2 [2] => 3 ) 值从小到大,只改变值
$y = array(2,1,3);
asort($y);
print_r($y); // Array ( [1] => 1 [0] => 2 [2] => 3 ) 值从小到大,保留原来的键值关系
$z = array(2=>'1',1=>'2',3=>'3');
ksort($z);
print_r($z); // Array ( [1] => 2 [2] => 1 [3] => 3 ) 键从小到大 保留原来的键值关系
rsort($a); // 反向排序
print_r($a); // Array ( [0] => 3 [1] => 2 [2] => 1 ) 值从大到小 只改变值
shuffle($a);
print_r($a); // 对值进行随机排序
$as = array(4,5,6);
array_reverse($as); //反向排序不影响原来的数组
print_r(array_reverse($as)); //Array ( [0] => 6 [1] => 5 [2] => 4 )
print_r($as); //Array ( [0] => 4 [1] => 5 [2] => 6 )
//数组操作
$a1 = array(1,2,3);
array_unshift($a1, 0); //将新元素添加到数组头
print_r($a1); // Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
array_shift($a1); //将删除数组头的第一个元素
print_r($a1); // Array ( [0] => 1 [1] => 2 [2] => 3 )
array_push($a1, 4); //将新元素添加到数组尾
print_r($a1); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
array_pop($a1); //将删除数组尾的一个元素
print_r($a1); // Array ( [0] => 1 [1] => 2 [2] => 3 )
// 数组的指针操作
// next(),each():将指针前移一个元素
// current(),pos():获取指针当前元素
// reset():重置指针
// end(),prev():将指针往回移一个元素
// 统计数组个数
echo count($a); //3
echo sizeof($a); //3
// 将数组转化为标量变量 ,适用于非数值下标
$user = array('name'=>'张三','sex'=>'男','age'=>'22');
extract($user);
echo $name; //张三
?>