数组
PHP对于数组遍历的方法:
php里面的数组有索引数组和关联数组
- for循环遍历索引数组:
因为for循环是一个单纯的计数型循环,而索引数组的下标为整型的数值。因此,我们可以通过for循环来遍历索引数组。
$arr = [1,2,3,4,5];
for($i = 0; $i < count($arr); $i++){ //count()是计算数组数量的函数
echo $arr[$i];
}
//输出12345
- foreach循环遍历关联数组:
//foreach( 要循环的数组变量 as [键变量 =>] 值变量){
//循环的结构体
//}
//定义一个关联数组
$arr = [
'dy' => '大爷',
'dm' => '大妈'
];
foreach($arr as $key => $value){ //$key和$value这两个变量不一定这样命名,是可以随便取你喜欢的名字的
echo $key . '-' . $value . '<br />';
}
//输出dy-大爷 dm-大妈
//如果我们只想读取值的话,就可以把下面的$key => 给删除掉,读取的时候,就只读取值了。
foreach($arr as $value){
echo $value . '<br />';
}
//输出大爷 大妈
- list函数遍历数组:
原型:list ( mixed $变量1 [, mixed $变量n ] ) 它的功能:将索引数组下标为0的对应我变量1,下标1的对应变量2,依此类推。
list($one , $two , $three) = array('张三' ,'李四' ,'王五');
echo $one.'-'.$two.'-'.$three;//输出张三-李四-王五
list($one, $two, $three) = array(2 => '张三', '李四', '王五');
echo '$one----' . $one . '<br />';
echo '$two----' . $two . '<br />';
echo '$three----' . $three . '<br />';
/*输出:$one----
$two----
$three----张三
*/
/*
1.因为是一一对应原则,$one找不到下标为0的数组元素,$two找不到下标为1的数组元素,只有$three找到了下标为2的数组元素
2.在list($one, $two, $three),我只写了三个变量。对应完成,无需再对应后面的变量了,丢弃李四和王五
*/
- each函数:
原型:array each ( array &$array ) ;传入一个数组,它会将其中的一个元素拆为个新数组。每次执行这样操作一个元素。执行一次先后移动一次,同样的方式操作下一个数组元素。执行到最后,返回false。
$arr = [
"one" => 'baba',
"two" => 'mama'
];
$data = each($arr);
echo '<pre>';
var_dump($data);
echo '</pre>';
/*输出
array(4) {
[1]=>
string(4) "baba"
["value"]=>
string(4) "baba"
[0]=>
string(3) "one"
["key"]=>
string(3) "one"
}
*/
//可以结合list用,0的下标做list的第一个变量,1的下标当list的第二个变量,就可以组合成一个数组
list($first,$last) = each($arr); //上面each过一次,现在会往后移动一次,现在是在two的键值那边
echo $first.'---'.$last; //输出two---mama
PHP里面常用的数组 “操作” 函数:
- count()
原型是: int count(mixed $变量); mixed类型就是可以传入其他类型的变量,其返回的类型是int整数
$arr = array(1,2,3,4);
echo count($arr); //输出 4;
- array_shift()
原型:mixed array_shift ( array &$array ) 弹出数组中的第一个元素
$arr=['boy','hello','php'];
echo array_shift($arr).'<br/>'; //返回第一个元素值boy
print_r($arr); //原函数变成两个长度,输出为Array ( [0] => hello [1] => php )
- array_unshift()
原型:int array_unshift ( array &$数组 , mixed $值1 [, mixed $… ] )功能:向指数组的开始处压入一个或多个元素,返回的是总个数。
$arr = ['jobin','ben'];
echo array_unshift($arr,'hello','php')."<br/>"; //返回数组总个数:4
print_r($arr); //输出原数组:Array ( [0] => hello [1] => php [2] => jobin [3] => ben )
- array_pop()
原型:mixed array_pop ( array &$array )这个函数是栈的出栈,功能:弹出数组末尾的一个元素
$arr = ['hello','php','boy'];
echo array_pop($arr).'<br/>'; //返回boy
print_r($arr); //输出原数组:Array ( [0] => hello [1] => php )
- array_push()
原型:int array_push ( array &$array , mixed $value1 [, mixed $… ] ) 向指数组末尾处压入一个或多个元素,返回的是总个数。
$arr = ['hello','php','boy'];
echo array_push($arr,'JJ','verY').'<br/>'; //返回 5
print_r($arr); //输出原数组:Array ( [0] => hello [1] => php [2] => boy [3] => JJ [4] => verY )
- 其他函数:
current 读出指针当前位置的值
key 读出指针当前位置的键
next 指针向下移
prev 向上移
reset 指针到开始处
end 指针到结束处