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的元素