跟燕十八学习PHP-第十三天-常用数组函数讲解

来源:互联网 发布:淘宝台服战网点 编辑:程序博客网 时间:2024/04/30 19:24
/** 
燕十八 公益PHP培训 
课堂地址:YY频道88354001 
学习社区:www.zixue.it 
**/


<?php


// 数组函数讲解


/*
count 函数
作用:计算数组的单元个数[或对象的属性个数]


注:count函数的参数,可以是数组,也可以是"非数组"
返回值分3种情况讨论
1: 数组/对象, 返回数组的单元个数/对象的属性个数
2: NULL ,返回0
3: 非数组,也非NULL,通通返回1
*/




$arr = array('a','b','c','d');
echo count($arr),'<br />'; // 4


$str = 'abcd';
echo count($str),'<br />'; // 1


$nul = null;
echo count($nul),'<br />'; // 0






//====再深入一点===//
$arr = array('a','b','c',array('d','e'));
echo count($arr),'<br />'; // 4,l因为$arr第1层确实就4个单元




// 刚才答5的同学,思路值得夸张,因为他用到了递归的思想,
// 即,某单元如果是数组,继续进去数单元数量.


echo count($arr,true),'<br />'; // 6


/*
第2个参数为true时,代表递归的来计算数组的单元个数


第1层 a,b,c, array(d,e) == 4个单元
array(d,e) 又是数组,进该数量继续数.
数出 d,e 2个单元


共6个
*/




$arr = array('a','b','c',array('d',array('e','f')));


echo count($arr,true),'<br />';


<?php


/*
array_key_exists
数组 键 存在, 用来判断数组有没有某一个键
*/




$arr = array('age'=>98,'height'=>176,'area'=>'北京',0=>'哈哈','kaka'=>NULL);


echo $arr['age'],'<br />';


echo $arr['abc'],'<br />';


// 能不能先判断数组有没有某单元?


/*
有2个办法,用isset
*/


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 />';
}




var_dump(isset($arr['kaka'])); // false
var_dump(isset($arr[0]));       // true




/*
用isset和array_key_exists来判断
有什么区别呢?






1:
isset 不是函数,是语法结构
而array_key_exists是函数


速度上,isset省去了一次函数调用,速度要快些.


2:isset来判断是根据值来判断的,
如果某个单元的值 为 NULL,依然是返回false
因为 isset是靠值来判断的.


如果对于键/值的都不固定,不确定是否有NULL存在,
请用 array_key_exists来判断




3: isset是用来判断变量是否设置的,不限于数组


// 如果数组是动态生成,不好判断单元值及键值时,用array_key_exists保险
*/


燕十八老师太幽默了, 昨天的视频如下:
http://www.tudou.com/listplay/uCx6IN6luok/J2Ai2bxYNzo.html
原创粉丝点击