PHP数组与数据结构
1. 认识数组
数组的英文是array,可以存入多个不同类型的数据,是一个复合数据类型。
代码示例:
<?php
//数组的英文是array,可以存入多个不同类型的数据,是一个复合数据类型
$arr = array(1, 1.5, true, '天王盖地虎,小鸡炖蘑菇。');
echo '<pre>';
var_dump($arr);
echo '</pre>';
?>
输出结果为:
<pre>array(4) {
[0]=>
int(1)
[1]=>
float(1.5)
[2]=>
bool(true)
[3]=>
string(36) "天王盖地虎,小鸡炖蘑菇。"
}
</pre>
在上例中,我们发现我们存入了:
1.整型
2.浮点
3.布尔
4.字符串
注:
上例中 echo pre 这个标签的主要目的是为原样输出,格式展示的更好看,更清晰。
然后我们用 var_dump()
打印出来看一下效果。
注:
索引数组的下标必须要从0开始吗?
答:这个问题其实不然,索引数组并不一定要从0开始。
那如何能够不从0开始呢?
答:需要用到大家在上面学的一小块知识哟。就是键值对应符。我们来动手写写。
<?php
$arr = array('只有不断努力才能博得未来',10 => 'NoAlike', 'PHP中文网' , '去PHP中文网学PHP', 19 => '苹果和梨子我都爱' , '橘子我最爱');
//打印显示$arr
echo '<pre>';
var_dump($arr);
echo '</pre>';
?>
输出结果为:
<pre>array(6) {
[0]=>
string(36) "只有不断努力才能博得未来"
[10]=>
string(7) "NoAlike"
[11]=>
string(12) "PHP中文网"
[12]=>
string(21) "去PHP中文网学PHP"
[19]=>
string(24) "苹果和梨子我都爱"
[20]=>
string(15) "橘子我最爱"
}
</pre>
2. for 循环遍历索引数组
<?php
//声明一个数组,值为1到10
$num = array(1,2,3,4,5,6,7,8,9,10);
//按照索引数组的特点,下标从0开始。所以1的下标为0,10的下标为9
echo '下标为0的数字:'.$num[0].PHP_EOL;
echo '下标为9的数字:'.$num[9].PHP_EOL;
//我们可以得到数组中元素的总个数,为10
echo '数组中元素的总个数:'.count($num) .PHP_EOL;
//遍历这个索引数组的话,我们就可以定义一个变量为$i
//$i 的值为0,从0开始
//可以设定一个循环条件为:$i 在下标的(9)最大值之内循环
for($i = 0 ; $i < count($num) ; $i++){
echo $num[$i].PHP_EOL;
}
?>
输出结果为:
下标为0的数字:1
下标为9的数字:10
数组中元素的总个数:10
1
2
3
4
5
6
7
8
9
10
通过上面的例子,我们就把数组进行了循环。
因为下标是从0开始的,定义 $ i = 0 。每次循环的时候让 $ i 加1 ,但是必须要小于10,因为数组下标的最大值为9。
3. 常用操作数组函数
函数 | 功能 |
---|---|
array_shift | 弹出数组中的第一个元素 |
array_unshift | 在数组的开始处压入元素 |
array_push | 向数组的末尾处压入元素 |
array_pop | 弹出数组末尾的最后一个元素 |
current | 读出指针当前位置的值 |
key | 读出指针当前位置的键 |
功能:弹出数组中的第一个元素。
<?php
$star = array("邓超", "黄晓明", "宁泽涛", "钟汉良");
$star_first = array_shift($star);
echo '元组的第一个元素为:'.$star_first .PHP_EOL;
print_r($star);
?>
输出结果为:
元组的第一个元素为:邓超
Array
(
[0] => 黄晓明
[1] => 宁泽涛
[2] => 钟汉良
)
end