最全的数组函数介绍:http://cn2.php.net/manual/zh/book.array.php,常用备忘。
?
?
声明:
$array = array("id" => 1, "name" => "duanyong");
?
得到所有键:
$key = array_keys($array);
?
得到所有值:
$values = array_values($array);
?
遍历值和值:
a. foreach ($array as $key => $value) {
?? ?echo $key . "\t" . $value;
}
b. while (list($key, $value) = each($array)) {
?? ?echo $key . "\t" . $value;
}
检索数据
in_array()与array_search(),指定第三个参数为true,那么会执行严格检查(如数组中有字符串的1,而查找却用数字1,在没有指定第三个参数会返回true,否则false)。
in_array("duanyong", array("aaaa", "bbbb", "duanyong"));?? ?//检查字符串duanyong是否存在于数组中
array_search("duanyong", array("id" => "1", "sex" => 1, "name" => "duanyong"), true);?? ?//查找到值后返回键,否则返回false
?
检查索引是否存在
$array = array("name" => null);
isset($array["name"]);??? ??? ??? //return false
array_key_exists("name", $array);??? //return true
?
数组指针操作
要特别注意地是指针如果已经移到数据下标外,需要用reset将数组指针复位(置于第一个元素)才可以继续操作,否则会出现意外。
current($array);?? ?//返回当前元素
next($array);?? ??? ?//返回下一个元素,没有返回false
prev($array);?? ??? ?//返回上一个元素,没有返回false
end($array);?? ??? ?//返回最后一个元素
reset($array);?? ?//将指针置于第一个元素上
?
数组排序
排序的类型:
??? ???? SORT_REGULAR ??? - 正常比较单元(不改变类型)
??? ???? SORT_NUMERIC ??? - 单元被作为数字来比较
??? ???? SORT_STRING ??? - 单元被作为字符串来比较
??? ???? SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较。PHP 4.4.0 和 5.0.2 新加。在 PHP 6 之前,使用了系统的区域设置,可以用 setlocale() 来改变。自 PHP 6 起,必须用 i18n_loc_set_default() 函数。
对数据按值排序,保持键值关系
asort,arsort
对数据按键排序,保持键值关系
ksort,krsort
对数据排序同时抛弃键,生成新的数据索引
sort,resort
按用户规则排序,usort会删除原有索引,uksort和uasort会保持原有索引
usort,uksort,uasort
数组过滤
array_filter() 如果不指定过滤函数会返回元素布尔值为true的元素