|
//数组的创建 //1
$usernames = array('李彦宏','周宏伟','马云','俞敏洪','李开复');
echo $usernames; //array,打印类型
echo '<br />';
echo $usernames[1];
echo '<br />';
($usernames);//print_r()打印变量的信息
//2 通过range()函数自动创建一个数组
$numbers = (1, 10);
$letters = ('a', 'z');
$numbers2 = (1, 10, 2); //第三个参数表示步长
($numbers);
echo '<br />';
($letters);
echo '<br />';
($numbers2); //1 3 5 7 9
//循环打印数组
//for循环,count()获得数组长度,这种必须下标从0开始,且为数字
for($i=0;$i<($numbers);$i++){
echo '<br />';
echo $numbers[$i];
}
//foreach()打印数组,只能打印数组
if(($numbers)){ //如果是数组
foreach ($numbers as $key=>$value){
echo '<br />';
echo $key.'---'.$value;
}
}
//3 自定义键数组
$usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
// print_r($usernamessernames);
$usernames['goggle'] = '李开复'; //追加数组
// print_r($usernames);
//直接创建自定义键数组
$userages['党'] = '22';
$userages['周'] = '23';
($userages);
// 循环打印foreach();each();list();
foreach ($userages as $key=>$value){
echo '<br />';
echo $key."--".$value;
}
// $a = each($userages); //返回数组当前键值对(是一个数组)并将数组指针向前移动一步
// echo $a[0].'--'.$a[1];
while (!!$a=($userages)){ //!!转化为布尔值,如果值存在返回1
echo $a[0].'--'.$a[1].'<br />';
//echo $a['key'].'--'.$a['value'].'<br />';
}
// $a = array('a','b','c'); //list()只能识别数字下标
// list($var1,$var2)=$a; //list($var1,$var2)就是将$var1='a',$var2='b'
// echo $var2; //b
list($name,$age)=($userages);
echo $name.'---'.$age.'<br />';
//reset();将数组的指针指向第一个单元上,可以对each()指针操作
//$a = array_unique();创建一个新数组,新数组移除原数组中重复的值,原数组不动
//array_flip();对调数组中的键和值,不会改变本体,而是返回新数组,同上
//4 数组里的数组:二维数组
$products=array(
array('苹果',1),
array('橘子',2),
array('栗子',3)
);
// print_r($products);
//双重循环打印数组
// echo count($products); //3
for ($i=0;$i<($products);++$i){
for ($j=0;$j<($products[$i]);++$j){
echo $products[$i][$j].'|';
}
echo '<br />';
}
//双重循环打印二维数组
$products=array(
array('产品名'=>'苹果','数量'=>1),
array('产品名'=>'苹果','数量'=>1),
array('产品名'=>'苹果','数量'=>1)
);
for ($i=0;$i<($products);++$i){
foreach ($products[$i] as $key=>$value){
echo $key.'--'.$value.'|';
}
echo '<br />';
}
for ($i=0;$i<($products);++$i){
while (!!list($key,$value)=($products[$i])){
echo $key.'--'.$value.'|';
}
echo '<br />';
}
//5 数组排序
$fruit = array('banner','orange','apple');
//sort();
($fruit);
($fruit); //a b o,中文也可以的
$numbers = array(2,3,4,5,6);
($numbers);
($numbers);
//sort()函数的第二个参数是可选的。这个可选参数可以传递SORT_REGULAR(默认值)、SORT_NUMERIC或SORT_STRING。指定排序类型的功能是非常有用的。比如,当要比较可能包含有数字2和12的字符串时,从数字角度看,2要小于12,但是作为字符串,"12"却要小于"2"。
$numbers = array("12","2");
($numbers,SORT_STRING);//按字符串排序
($numbers);
//asort(),保留索引关系
$fruit = array('banner','orange','apple');
($fruit);
($fruit);
//ksort(),对键排序
$fruit = array('b'=>'banner','a'=>'orange','c'=>'apple');
($fruit);
($fruit);
//反向排序,在前边的前边加r
$numbers = array(2,3,4,5,6);
($numbers);
($numbers);
();随机排序
$pic = array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');
($pic); //随机打乱数组
for ($i=0;$i<($pic)-2;++$i){
echo '<img src="images/'.$pic[$i].'" />';
echo "\n";
}
//把数组反方向,一般array开头的不会改变原数组,生成新的数组
$a = ($pic);
($a);
//6 添加函数
$username = array("dang");
//array_unshift();开头插入元素,插入成功返回int
($username, 'zhou');
($username);
//array_push();//结尾插入数据
($username,'haha');
($username);
// 删除数组元素
($array); 删除开头元素
();删除结尾元素
();随机取出数组中一个或多个键,多个返回的是数组
$fruit = array('banner','orange','apple');
$a = ($fruit,1);
echo $fruit[$a];
//7 数组指针的操作
// 在数组中浏览:each()、current()、reset()、end()、next()、pos()、prev();
// 调用next()或each()将使指针前移一个元素。调用each($array_name)会在指针前移一个位置之前返回当前元素。next()函数则有些不同----调用next($array_name)是将指针前移,然后再返回新的当前元素。
// 要反向遍历一个数组,可以使用end()和prev()函数。prev()函数和next()函数相反。它是将当前指针往回移一个位置然后再返回新的当前元素。
$fruit = array('banner','orange','apple');
$usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
//current();获取指针的当前元素,current并没有把指针移到下一步
echo ($usernames);
//next();向后移一位
echo ($usernames);
echo ($usernames);
($usernames); //将指针指向第一个单元
echo ($usernames);
$usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
//统计数组个数,sizeof();count();
echo ($usernames);
echo ($usernames);
//array_count_values()统计数组内所有值出现的个数
$a = array(1,2,3,3,3,2,2);
(($a));
//8 将数组转换成标量变量
//对于一个非数字索引数组,而该数组又有许多关键字-值对,可以使用函数extract()将它们转换成一系列的标量变量。
//函数extract()的作用是通过一个数组创建一系列的标量变量,这些变量的名称必须是数组中关键字的名称,而变量值则是数组中的值。
//extract(array var_array,[int extract_type],[string prefix]);
$fruits = array('a'=>'apple','b'=>'banner','c'=>'orange');
($fruits);
echo $a; //apple
echo $c; //orange |
|