<?php
//数组常用操作
header("Content-type:text/html;charset=utf-8");
//声明数组:
$arr = array('001'=>'春','002'=>'夏','003'=>'秋','004'=>'冬');
print_r($arr);//Array ( [001] => 春 [002] => 夏 [003] => 秋 [004] => 冬 )
//索引数组:
$arr = array(0=>'东',1=>'西',2=>'南',3=>'北');//键不必有特殊意义。
//关联数组:
$student =array('name'=>'小花','age'=>30);//字符串做键,突出单元的意义。
//多维数组:
$student2 = array('name'=>'小明','info'=>array('love'=>array('name1'=>'小花','name2'=>'小樱')));
print_r($student2);
//关于键的规则:
//1.如不声明,则递增键值。如果声明1个或多个数字键,则从最大的数字键,递增生成。
//2.如果键重复了,后面的键值覆盖前面的值。
//3.浮点数转成整数。
$arr = array(3=>'a',3=>'b',9=>'c','d');
print_r($arr);
echo "<br />";
//操作数组的单元:
$arr = array('a','b','c');
//增加单元
$arr[] = 'd';
$arr[99] = 'e';
$arr['stu'] = array('li','wang');
print_r($arr);//Array ( [0] => a [1] => b [2] => c [3] => d [99] => e )
//读取单元
echo $arr['stu'][1];//wang
//改单元值
$arr['stu'] = 'A';
print_r($arr);//Array ( [0] => a [1] => b [2] => c [3] => d [99] => e [stu] => A )
//删除某个单元
unset($arr['stu']);
print_r($arr);//Array ( [0] => a [1] => b [2] => c [3] => d [99] => e )
?>
<?php
//数组操作
/*游标操作
current()
next()
prev()
end()
*/
header("Content-type:text/html;charset=utf-8");
$arr = array('a','b','c','d');
//取当前游标指向的数组单元的值
echo current($arr)."<br />";//a
next($arr);//下一位
echo current($arr)."<br />";//b
end($arr);//尾
echo current($arr)."<br />";//d
reset($arr);//复位
echo current($arr)."<br />";//a
//下方的操作有漏洞,执行到false时while退出。
$arr = array(1,2,3,false,4,5,6);
while($v = current($arr)){
echo $v."<br />";
next($arr);
}
//数组常用函数及面试题
$arr = array('a'=>'张三','b'=>'赵四','c'=>NULL);
//判断数组{键}是否存在,用isset函数操作不合理!
if(isset($arr['c'])){ //结果:c号单元不存在
echo 'c号单元存在';
}else{
echo 'c号单元不存在';
}
echo "<br />";
//判断数组{键}是否存在,用array_key_exists('key',$arr)函数操作!
if(array_key_exists('c',$arr)){ //结果:c号单元存在
echo 'c号单元存在';
}else{
echo 'c号单元不存在';
}
echo "<br />";
//判断数组{值}是否包含在单元内。
if(in_array('赵四', $arr)){
echo '赵四单元存在';
}else{
echo '赵四单元不存在';
}
echo "<br />";
/*
array_push($arr,'e');//往数组尾部加入单元,并返回操作后的数组长度。
array_pop($arr); //数组的最后一个单元弹出。
array_unshift($arr,'z'); //往数组头部加入单元,并返回操作后的数组长度。
array_shift($arr); //数组的第一个单元弹出。
*/
$arr = array('a','b','c','d');
echo array_push($arr,'e')."<br />";//5
echo array_pop($arr)."<br />";//e
echo array_pop($arr)."<br />";//d
echo array_unshift($arr,'z')."<br />";//4
print_r($arr); //z a b c
echo "<br />";
echo array_shift($arr)."<br />";//z
print_r($arr); //a b c
echo "<br />";
//遍历数组
foreach ($arr as $a){
echo $a."<br />"; // a b c
}
for ($i= 0;$i< count($arr); $i++){
echo $arr[$i]."<br />"; // a b c
}
//注:因为while在数组中的操作较少,这里就不深做研究。
?>