PHP:使用数组

使用数组

存储在数组中的值称为数组元素。每个数组元素有一个相关的索引(也称为关键字),它可以用来访问元素。PHP允许使用数字或字符串作为数组的索引,这样可以使得索引更具意义和有用。

1 数字索引数组

1.1 数字索引数组的初始化

举个例子:
$a = array(1, 2, 3);
如果需要将按升序排列的数字保存在一个数组中,可以使用range()函数自动创建这个函数,例:
$b = range(1, 10);
这将创建一个从1到10的数字数组。range()函数还具有第三个可选参数,这个参数用来设置值之间的步幅,如创建从1到10的奇数数组:
$c = range(1, 10, 2);
range()函数还可以对字符进行操作,如:
$d = range('a', 'z');

1.2 访问数组

举个例子:

$prices = array(100, 50, 10);
for ($i=0; $i<count($prices); $i++) {
    echo $prices[$i]." ";
}

2 使用不同索引的数组

2.1 初始化相关数组

以下例子将会创建一个以产品名字为关键字、以价格为值的数组:
$prices = array( 'Tires' => 100, 'Oil' => 50, 'Spark' => 10);

2.2 访问数组元素

举个例子:
$prices['Tires'];
这样即可访问到100.

循环访问全部元素的示例代码:

$prices = array( 'Tires' => 100, 'Oil' => 50, 'Spark' => 10);
printf("foreach访问<br>");
foreach ($prices as $key => $value) {
    echo $key. '=>' .$value. "<br>";
}
echo "<hr>";
reset($prices);//注意each()函数时,数组将记录当前元素,若希望再次使用该数组,先重置下
printf("each访问<br>");
while (list($key, $value) = each($prices)) {
    echo $key. '-' .$value. "<br>";
}

2.3 多维数组

举个例子:

$products = array(  array('Code' => 'TIR', 'Desc' => 'Tires', 'Price' => 200),
                array('Code' => 'OIL', 'Desc' => 'Oil', 'Price' => 400),
                array('Code' => 'SPK', 'Desc' => 'Spark', 'Price' =>50)
);
printf("一层for循环逐行访问<br>");
for ($row=0; $row < 3; $row++) {
    echo $products[$row]['Code']."-".$products[$row]['Desc']."-".$products[$row]['Price']."<br>";
}
echo "<hr>";
printf("嵌套循环来访问<br>");
for ($row=0; $row < 3; $row++) {
    while (list($key, $value) = each($products[$row])) {
        echo $key."-".$value."<br>";
        //echo $element['key']."-".$element['value']."<br>";
    }
}

可以看到:访问多维数组内的元素,通过循环访问到内部的一维数组再用相关索引就可以访问到元素了。

3 数组排序

3.1 使用sort()函数

举个例子:

$num = array(1, 8, 2, 4, 7, 5);
sort($num);
foreach ($num as $key => $value) {
    echo $value." ";
}

3.2 使用asort()和ksort()函数

asort()函数根据数组的每个元素的值进行排序;ksort()函数根据数组的每个元素的索引进行排序。

3.3 反向排序

sort()、asort()和ksort()函数都是升序排序,对应的降序排序函数分别为:
rsort()、arsort()和krsort()。

3.4 多维数组的用户自定义排序

参见文章:PHP多维数组排序

4 其他数组函数

  • shuffle()–打乱数组并按随机顺序排列
  • array_reverse()–返回一个内容与参数数组相同但是顺序相反的数组
  • count()、sizeof()–统计数组元素个数
  • extract()–将数组转化成标量变量
  • explode()–按传入的字符分割数组,并返回一新数组

针对最后两个函数各举个例子:

$str = 'bken2016@163.com';
$str = explode("@", $str);
echo count($str)."<br>";
echo $str[1];//输出163.com

$prices = array( 'Tires' => 100, 'Oil' => 50, 'Spark' => 10);
extract($prices);
echo $Tires;//输出100
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值