count 函数 作用:计算数组的单元个数[或对象的属性个数]
注:count函数的参数,可以是数组,也可以是"非数组" 返回值分3种情况讨论
1: 数组/对象, 返回数组的单元个数/对象的属性个数
2: NULL ,返回0
3: 非数组,也非NULL,通通返回1
echo count($arr);
count($arr,true),'<br />';//第2个参数为true时,表示用递归的来计算数组的单元个数
array_key_exists
数组 键 存在, 用来判断数组有没有某一个键
if(isset($arr['age'])) {
echo $arr['abc'];
} else {
echo '$arr["abc"]不存在<br />';
}
用函数 array_key_exists来判断
if(array_key_exists('abc',$arr)) {
echo '有abc键';
} else {
echo '$arr["abc"]不存在<br />';
}
用isset和array_key_exists来判断 有什么区别呢?
1: isset 不是函数,是语法结构 而array_key_exists是函数
速度上,isset省去了一次函数调用,速度要快些.
2:isset来判断是根据值来判断的, 如果某个单元的值 为 NULL,依然是返回false 因为 isset是靠值来判断的.
如果对于键/值的都不固定,不确定是否有NULL存在, 请用 array_key_exists来判断
3: isset是用来判断变量是否设置的,不限于数组
如果数组是动态生成,不好判断单元值及键值时,用array_key_exists保险
array_flip($arr); // 交换键值, 即值做键,键做值
in_array('小刚',$arr); //函数,判断某个值存不存在
range(1,10); // 生成一个指定范围的数组
array_sum($arr); // 计算数组所有单元的值的和
shuffle($arr); //把数组打乱
array_unique($arr); //键名没改变,如果值重复的话,取先出现的键值放在返回数组里.去重函数
array_reverse($arr); //数组反转函数array_reverse($arr,true);//如果想强制把索引也调过来,可以加第2个参数
对于纯整型的索引数组,反转时,要注意,默认不转键的顺序,只转值的顺序.
array_push
1: array_push的作用是 往数组的尾部压入单元
2: 返回值是: 压入单元成功后,数组的单元个数
3: array_push是引用传值,直接影响参数数组本身
array_poparray_pop 总结
1: 作用是弹出并去掉最后一个单元
2: 返回值是弹出的值
3: array_pop是引用传参,直接影响参数数组的值
array_shift
1: array_shift作用是 弹出并剪切数组的第一个单元
2: 返回是弹出的单元值
3: array_shift是引用传参,为影响参数数组
4: array_shift在剪切首单元之后,学会把索引重新整理,从0开始计数.
但, 如果是字符串做键,则不受影响.
array_unshift
1: 作用是把单元追加到数组的头部
2: 返回值是追加后,新数组的单元个数
3: 引用传参,影响参数的值
4: 在头部新加单元后, 索引从0重新排
思考题:
如何反转数组,并保持原来的键值?
原数组:
$a = Array ( [1490] => 874 [1534] => 553 [1488] => 532 [27] => 321 [1498] => 111 );
array_slice($a,0,2,true);
print_r($a);
结果 : Array ( [1490] => 874 [1534] => 553 )
浙公网安备 33010602011771号