PHP对数组的常用处理
PHP对数组的常用处理
print_r()
利用 print_r() 函数可以打印输出整个数组内容及结构,按照一定格式显示键和元素。注意 print_r() 函数不仅是只用于打印,实际它是用于打印关于变量的易于理解的信息。
var_dump()
同 print_r() 函数一样,var_dump() 函数也可以用于打印数组的数据及结构。不过 var_dump() 函数功能比 print_r() 更强大,可以同时打印多个变量且给出变量的类型信息。
<?php $arr_age = array(18, 20, 25); var_dump($arr_age); ?> 输出 array(3) { [0]=> int(18) [1]=> int(20) [2]=> int(25) }print_r() 和 var_dump() 函数一般是用于调试程序使用,更多情况是使用 echo 来输出具体的数组单元值。
is_array()
PHP is_array() 函数用于检测变量是否是数组,这个函数尤其会用于一些安全性检查方面(如表单或 SESSION 检查等)。
foreach()
PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。
语法:
foreach (array as $value) statement // 或者: foreach (array as $key => $value) statement
上述语法中,每次循环将当前单元的值赋给 $value 并且数组内部的指针向前移一步。在第二种语法格式中还将当前单元的键名也会在每次循环中赋给变量 $key。
例子:
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $age) { echo $age,"<br />"; } ?>
运行该例子输出:
18 20 25
延伸预读
PHP 数组是通过哈希表(HashTable)表实现的,因此 foreach 遍历数组时是依据元素添加的先后顺序来进行的。如果想按照索引大小遍历,应该使用 for() 循环遍历。
提示
也可以用 list() 和 each() 结合来遍历数组,但测试发现效率不如 foreach() 。
array_sum()
PHP array_sum() 函数用于计算数组中所有值的和,以整数或浮点数返回计算结果,非数字的单元将视作 0 。
array_product()
PHP array_product() 函数用于计算数组中所有值的乘积,以整数或浮点数返回计算结果,非数字的单元将视作 0 。
array_count_values()
PHP array_count_values() 函数用于统计数组中所有的值出现的次数,返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。
in_array()
PHP in_array() 函数检查数组中是否存在某个值,如果存在则返回 TRUE ,否则返回 FALSE 。
语法:
bool in_array( mixed needle, array array [, bool strict] )
参数 | 说明 |
---|---|
needle | 需要在数组中搜索的值,如果是字符串,则区分大小写 |
array | 需要检索的数组 |
strict | 可选,如果设置为 TRUE ,则还会对 needle 与 array 中的值类型进行检查 |
例子:
<?php $arr_a = array("a", "b", "c", 1); if(in_array("a", $arr_a)){ echo "字符 a 在 $arr_a 数组中存在"; } else { echo "字符 a 在 $arr_a 数组中不存在"; } ?>
例子输出结果如下:
字符 a 在 $arr_a 数组中存在
严格检查的例子:
<?php $arr_a = array("a", "b", "c", 1); if(in_array("1", $arr_a, TRUE)){ echo "字符 1 在 $arr_a 数组中存在"; } else { echo "字符 1 在 $arr_a 数组中不存在"; } ?>
例子输出结果如下:
字符 1 在 $arr_a 数组中不存在
数组作为 needle 的例子:
<?php $arr_a = array(array("a", "b"), 1, 2); $arr_b = array("a", "b"); if(in_array($arr_b, $arr_a)){ echo "数组 $arr_b 在 $arr_a 数组中存在"; } else { echo "数组 $arr_b 在 $arr_a 数组中不存在"; } ?>
例子输出结果如下:
数组 $arr_b 在 $arr_a 数组中存在
array_key_exists()
PHP array_key_exists() 函数用于检查给定的键名或索引是否存在于数组中,如果存在则返回 TRUE ,否则返回 FALSE 。
提示
array_key_exists() 函数对于值为 null 的数组元素仍返回 TRUE。若要对数组元素是否为 null 做检查,请使用 isset()。
array_array()
PHP array_search() 函数用于在数组中搜索给定的值,如果成功则返回相应的键名,否则返回 FALSE 。
语法:
mixed array_search( mixed needle, array array [, bool strict] )
参数 | 说明 |
---|---|
needle | 需要在数组中搜索的值,如果是字符串,则区分大小写 |
array | 需要检索的数组 |
strict | 可选,如果设置为 TRUE ,则还会对 needle 与 array 中的值类型进行检查 |
提示
由于索引数组的起始索引数字可能是 0 ,因此该函数也可能返回与 FALSE 等值的非布尔值,例如 0 或者 "",所以需要使用 === 运算符对函数返回的值进行严格校验。
例子:
<?php $arr_a = array(0 => "a", 1 => "b", 2 => "c"); $key = array_search("a", $arr_a); if( $key !== FALSE ){ echo "键名为:$key"; } else { echo "无匹配结果"; } ?>
例子输出结果如下:
键名为:0
如果 needle 在 array 中出现不止一次,则返回第一个匹配的键。要返回所有匹配值的键,请使用 array_keys() 函数。
参考阅读
in_array():检查数组中是否存在某个值
sort() 函数用于对数组单元从低到高进行排序。rsort() 函数用于对数组单元从高到低进行排序。asort() 函数用于对数组单元从低到高进行排序并保持索引关系。arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。ksort() 函数用于对数组单元按照键名从低到高进行排序。krsort() 函数用于对数组单元按照键名从高到低进行排序。
- 上一篇:没有了
- 下一篇:没有了