第一个 [1] ear eset key reac arch blog 好的
1.each()
<?php
/*each()函数取出数组当前 键值对 以 数组 形式返回,并将指针向下移动*/
$a=array('id'=>1,'name'=>'mike','age'=>18,'address'=>'New York');
var_dump(each($a));echo "<br>";
var_dump(each($a));echo "<br>";
var_dump(each($a));echo "<br>";
var_dump(each($a));echo "<br>";
var_dump(each($a));echo "<br>";
?>
2. 数组的指针
<?php
/*current()和key()函数分别取得数组当前的值和键,却不移动指针*/
$a=array('id'=>1,'name'=>'mike','age'=>18,'address'=>'New York');
var_dump(current($a));echo "<br>";
var_dump(current($a));echo "<br>";
var_dump(current($a));echo "<br>";//都输出1
var_dump(key($a));echo "<br>";
var_dump(key($a));echo "<br>";
var_dump(key($a));echo "<br>";//都输出id
/*可以用prev()和next()函数将指针像前移或向后移*/
next($a);
echo current($a);//输出mike
echo key($a);//输出name
prev($a);
echo current($a);//输出1
echo key($a);//输出id
/*end()直接将指针只想最后一个,reset()将指针重置到第一个*/
end($a);echo current($a);//New York
reset($a);echo current($a);//1
/*用指针写一个遍历数组的函数*/
function arraylist($a)
{
while($value=current($a))
{
$key=key($a);
echo $key.'=>'.$value.',';
next($a);
}
reset($a);
}
arraylist($a);
arraylist($a);
?>
3.list()
<?php
/*list()按数组的索引顺序为传入的变量赋值*/
/*赋值的数组必须是索引数组*/
$a=array(1,'mike',18,'New York');
list($id,$name,$age,$address)=$a;
echo $id;//1
echo $name;//mike
echo $age;//18
echo $address;//New York
/*用list()和each()函数可以遍历出数组的键和值*/
/*相当于foreach()*/
while (list($key,$value)=each($a)){} //这里$a可是是关联数组
?>
4.array_values()
<?php
/*array_values()传入一个数组,返回一个按值的顺序重建的索引数组*/
/*处理一个顺序混乱的索引数组*/
$a=array(0=>'id',5=>'name',4=>'age',2=>'address');
var_dump(array_values($a));
/*将关联数组转变为索引数组*/
$b=array('id'=>1,'name'=>'mike','age'=>18,'address'=>'New York');
var_dump(array_values($b));
?>
5.array_keys() 和 array_search()
<?php
/*通常我们都是使用数组名加下标或键名的方式获得数组的值
但是,如果现在想反过来,像通过数组的值获得数组的键名该怎么做呢*/
$a=array('id'=>1,'name'=>'mike','age'=>18,'address'=>'New York','xingming'=>'mike');
/*将值对应的键以数组形式返回,第三个参数致命为严格匹配,默认为false
为什么要以数组返回呢,因为对应值的键可能不止有一个呀*/
var_dump(array_keys($a,'mike',true));//array(2) { [0]=> string(4) "name" [1]=> string(8) "xingming" }
var_dump(array_keys($a));//为指定值,那么就将所有的键按顺序返回
/*array_search()函数与array_keys()类似,都是输入值返回键名/*
/*不同的是它们参数的位置不同*/
/*并且array_search()返回一个键名,如果有多个则只返回第一个*/
var_dump(array_search('mike',$a,true));// string(4) "name"
?>
6.array_key_exists() 和 in_array()
<?php
/*array_key_exists()用来判断数组中是否存在这个键*/
$a=array('id'=>1,'name'=>'mike','age'=>18,'address'=>'New York','xingming'=>'mike');
echo array_key_exists('name',$a);//1
/*如何判断一个数组中是否存在一个值呢*/
/*也可以用之前的array_keys()和array_search()*/
/*这里有更好的方法in_array()*/
echo in_array('mike',$a,true);//1
?>
PHP - 数组小记 (一)
来源: http://www.bubuko.com/infodetail-2467834.html