php函数之数组

关联数组

isset

bool isset( mixed $val [, mix $...])

变量是否已设置并且非null。多个参数从左到右计算。

判断null

$a=null;var_dump(isset($a));
bool(false)

判断常量是否已设置用defined

定义常量 bool define( string $name, mixed $value [, $is_insensitive = false] )
返回一个常量的值(常量名在变量里)mixed constant( string $name )

tips

不可用于可变函数($bar()函数执行),需自己包装
PHP语言的关键词,语言语法的一部分
普通函数需要被PHP解析器(zend引擎分解成语言结构)

相关语言结构

require ( require_once 是函数)
include ( include_once 是函数)
empty ( !isset($var) || $var == false )
unset
print
echo
list
array 底层结构
die

array_key_exists

bool array_key_exists( mixed $key, array $array)

数组是否有键key。

isset对null值的区别

$arr=['a'=>null];var_dump(array_key_exists('a',$arr),isset($arr['a']));
bool(true) bool(false)

isset()的效率高

in_array

bool in_array( mixed $needle, array $haystack[, bool $strict = false])

检查数组 haystack 中是否存在 needle 值。strict 是否严格检查类型。

区分大小写
当有数字字符串时,会将字符串型数字转为长整形后比较
松散比较下,任何string都等于true

in_array(0, ['ddd',99]) //true string转换为int后比较
in_array('a', [true, 'b']) //ture

array_search

mixed array_search ( mixed $needle, array $haystack[, bool $strict = false])

在数组中搜索指定的值,如果成功返回首个相应的键名。strict 检查类型。

检查结果使用 ===
区分大小写
需要查询所有符合的键名,使用 array_keys 实现

array_keys

array array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]])

返回键名。search_value 只返回指定值得所有键名。

array_values

array array_values ( array $array )

返回数组所有值。建立数字索引。

array_flip

array array_flip ( array $array )

交换数组中的键和值。

成功返回 array, 失败返回 null
原数组值需要能作为合法键名(需要是string或integer)。如果类型不对,出警告,且其值/键不会出现在结果里
如果一个值出现多次,只取最后一个键名

array_combine

array array_combine ( array $keys, array $values )

创建一个数组,keys数组为键名,values为值。返回合并的array,如果单元数不同则返回false。

内部指针

数组分段

栈/队列

回调函数

排序

计算

数组生成

其他

你可能感兴趣的