数组是键值对的形式,键(key)默认自动生成,值(value)手动赋予;
输出数组
1、数组不能直接输出,因为数组是键值对的形式,如果需要打印数组中某个元素,需要打印出该数组对应的下标,如果该数组赋值给了变量,则同理:
如:echo $userNames[2],
如果需要打印整个数组信息,则:print_r($userNames);
2、range()自动生成数组,如:range(’a’,’z’)、range(1,10);
3、常用方法是,使用循环访问数组,如:$userNames
。
for($i=0;$i<6;$i++){
echo $userNames[$i];
echo '<br/>';
}
统计数组个数
在不知道数组个数的情况下,需要统计数组.需要用到count()
函数。
上边代码如果不知道数组具体个数的情况下,该这样写:
for($i=0;$i<count($userNames);$i++){
echo $userNames[$i];
echo '<br/>';
}
如果数组下标是从非0开始,或者下标是字母等其他符号开始
那就需要使用遍历循环:foreach()
.如下:
foreach($userNames as $key){
echo $value.'<br/>';
}
如果需要键值同时输出,那就是:
foreach($userNames as $key=>$value){
echo $key.'----'.$value.'<br/>';
}
注意:foreach
循环只能用于数组遍历,上处的$key
和$value
只是个约定,是可变的.
所以一般会先对其进行判断,是否为数组,如:
if(is_array($userNames)){
foreach($userNames as $key=>$value){
echo $key.'----'.$value.'<br/>';
}
}
自定义键
如:
$userNames = array('baidu'=>'李彦宏','taobao'=>'马云','360'=>'周鸿祎')
则只需输出:
echo $userNames['baidu'];
即可输出李彦宏
了.
追加数组
如在上面数组的基础上增加两条,则是:
$userNames['lurenjia'] = '张三';
$userNames['lurenyi'] = '李四';
自定义的数组下标也变化了,所以不能用for循环了,只能通过foreach
循环遍历出来。
数组排序
使用sort()
函数可以对数组进行排序,默认按照a-z的形式排序.比如:
sort($userNames);
保持索引关系
asort($userNames);
按照键进行排序
ksort($userNames);
反向(逆向)排序
rsort($userNames)
随机打散
shuffle($userNames);
将新元素添加到数组头:array_unshift()
将新元素添加到数组末尾: array_push()
也可以通过这种方式获取随机数组:
$fruit = array('bananer','orange','apple');
$a = array_rand($fruit,2);
echo $a[0];
echo $a[1];
数组指针操作参加手册。
统计数组内下标值出现的个数:array_count_values()