PHP基础之数组(5)

.数组的定义
(1)$arr=array('a';'b';'c';'d';'e');
$arr为一个数组

 

(2)$num=range(1,10);
$letter=range('a','z');
rang(1,10,2) //第三个参数表示步长为2

print_r() //将数组打印出来


2.数组的循环
for ($1=0;$i<count($num);$i++){
echo $num[$i];
}
----------------------------------------------------------
3.数组的遍历
foreach() [好处就是不用考虑key]

$num=array('asd';'fds';'ds');
foreach($num as $key=>$value){
echo $key.'-----'.$value;
}
--------------------------------------
4.自定义键数组
$ages=array('John'=>23;'Rose'=>35;'Don'=>30);
//$ages=array(['key']=>[value])

-----------------------------------
each的用法:
$str=array('aaaa','bbbb','cccc','dddd');

/第一次取第一个元素/
$x=each($str); //把$str数组中的每一个元素如:'aaaa'
//逐个取出,组成新的数组
echo $x["value"];{输出结果为aaaa}
/第二次取第二个元素/
$x=each($str); //把$str数组中的每一个元素如:'bbbb'
//逐个取出,组成新的数组
echo $x["value"];{输出结果为bbbb}

......................

/第4次取第4个元素/
$x=each($str); //把$str数组中的每一个元素如:'dddd'
//逐个取出,组成新的数组
echo $x["value"];{输出结果为dddd}
---------------------------------------
用循环语句就是
while (!!$x=each($str)){
echo $x["key"].'----'.$x["value"].'<br />';
}
输出结果:
0----aaaa
1----bbbb
2----cccc
3----dddd

----------------------------------------------------------
list的用法://[list只能认识key为数字的]
//自定义的字符串key是无法使用list来识别的
$a=array('aaa','bbb','ccc','ddd')
list($var1,$var2)=$a;
echo $var1.'--'.$var2;
//将数组的值分别赋给一系列的变量
输出结果为 aaa--bbb
------------------------------------------------------------
$str=array('aaaa'=>23,'bbbb'=>20,'cccc'=>30,'dddd'=>32);

list($name,$val)=each($str);

echo $name."-----".$val;
------输出结果:aaaa-----23
list($name,$val)=each($str);

echo $name."-----".$val;
------输出结果:bbbb-----20

换成循环来写就是:
while (!!list($name,$val)=each($str)){
echo $name.'------'.$val .'<br />';
}

输出结果:
aaaa------23
bbbb------20
cccc------30
dddd------32

-------------------------------------------------
4.数组的统计
count()/sizeof() [计算数组中的单元数目或对象中的属性个数]

array_count_values() [统计数组内所有值出现的次数]
-----------------------------------------------------------
5. reset($arr) 将数组内部的指针指向第一个单元

6. array_unique($arr) 移除数组中重复的值,并创建一个新数组

7. array_flip($arr) 将数组中的键与值对调
$arr=array('Done'=>20,'Rose'=>30);
$newarr=array_flip($arr);
/* 此时$arr=array('20'=>Done,'30'=>Rose) */

--------------------------------------------------------
8.二维数组
$arr=array(
array('Apple',6,1.0),
array('Banana',10,0.5),
array('Orange',8,0.8)
);
echo $arr[0][0].'--'.$arr[2][2];

循环显示出数组里的元素
for($i=0;$i<count($arr);$i++){
//外层循环,循环出 array('Apple',6,1.0),array('Banana',10,0.5),array('Orange',8,0.8)
for($j;$j<count($arr[$j];$j++){
//内层循环,循环出内层每个数组的每个元素 'Apple', 6 , 1.0 等等
echo $arr[$i][$j];
}
echo '<br />';
}
-----------------------------------------------------------------------------------------
$arr=array(
array('产品名'=>'Apple','数量'=>6,'价格'=>1.0),
array('产品名'=>'Banana','数量'=>10,'价格'=>0.5),
array('产品名'=>'Orange','数量'=>8,'价格'=>0.8)
);
// list方法
for ($i=0;$i<count($arr);$i++){
while (!!list($key,$value)=each($arr[$i])){
echo $key.'--'.$value;
}
echo '<br />';
}

// foreach方法
for ($i=0;$i<count($arr);$i++){
foreach ($arr[$i] as $value){
echo $value ."\n";
}
echo '<br />';
}
--------------------------------
4.数组排序
sort() //按字母升序排序

asort() //对数组进行排序并保持索引关系

ksort() //对数字按照键名排序

rsort() / arsort() / krsort()
//与上面三种相反,反向排序


shuffle($arr)
//将数组打乱

array_reverse($arr);
//将数组反向排序

array_unshift() //将新元素添加到数组头
array_push() //将每个新元素添加到数组尾

array_shift() //删除数组头第一个元素
array_pop() //删除结尾的元素

array_rand() //返回数组中的一个或多个键
$fruit=array('apple','orange','banner');
$a=array_rand($fruit,2);
echo $fruit[$a[0]];
echo $fruit[$a[1]];

current() //获取指针的当前元素


5.数组的指针操作
each() current()[pos()] reset() end() next() prev()

6.将数组转换成标量变量 extract()
$names=array('a'=>'apple','b'=>'banner','o'=>'orange');
//将下标转换成变量,将值赋给变量
extract($names);
echo $a $b $o ;

转载于:https://www.cnblogs.com/phpnuke/archive/2010/12/13/1904241.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值