1. php 判断数组里面有没有对象
可以用foreach遍历数组,每次用is_object函数判断数组元素是不是对象。像这样:
classA
{
private$a=5;
}
$a=newA();
$array=array("a"=>1,"b"=>2,"c"=>$a);
functionhas_object($arr)
{
foreach($arras$value)
{
if(is_object($value))
{
returntrue;
}
}
returnfalse;
}
print_r(has_object($array));
2. php 对象在foreach中存入数组的key值后面的一个会被前面的覆盖是怎么回事
.... . . . .. 你那个存的始终都是一个变量 ,,,
foreach (a){
$box->goods_name[] = $xx;
}
你得这样存才行
3. php中foreach($row as $key=>$val){}函数怎么理解,特别是$key=>$val
foreach 可以遍历数组与对象,它会把当前单元的键名也会在每次循环中被赋给变量 $key,值赋给变量$val,例如
$row=array('one'=>1,'two'=>2);
foreach($row as $key=>$val){
echo $key.'--'.$val;
}
第一次遍历的$key是one,$val是1;
第二次遍历的$key是two,$val是2;
4. PHP数组里面存放对象
楼上解释正确,不过我补充一下。
既然初始化是在类声明之后,那么可以通过手动串行化和反串行化来达到目的。
保存的时候使用serialize来保存,提取恢复的时候使用unserialize来恢复。
当然,这个还有一个要注意的地方,需要保存的对象最好是只包含数据,意思是,不要有数据库连接资源、文件资源之类的,如果包含这些,串行和反串行的结果都是一个int 0,反串行的时候可能不能正常工作。
至于对象串行反串行的一些可定制的功能,可以参考帮助文档的这个部分:
http://dk2.php.net/manual/zh/language.oop.magic-functions.php
通过定义魔术函数__sleep __wakeup来实现。
5. PHP中数据类型 array和object有什么区别
具体的概念区别你可以查看php帮助手册,我说下个人的理解:
通常来说,array是数组,而object是对象,两者有很大的区别,最主要的区别我觉得对象一般要定义行为,其目的是为了封装,而数组主要定义数据结构。
但这两种在php语言里区别比较模糊,因为php是支持范数据类型,所以array可以是object,反之亦然。
6. PHP 对象数组的筛选和判断
手打不易,有用请采纳。
$rArray = json_decode(json_encode($r),true);//通过json将对象转换为数组。
foreach($rArray as $k => $v){
if($v['banji']==1){ //如果banji=1则求语文成绩
echo "语文成绩={$v['yuwen']}";
}elseif($v['banji']==2){ //如果banji=2则求数学成绩
echo "语文成绩={$v['shuxue']}";
}
if($v['xingming']=='x'){ //有一个姓名为$x是否在banji1
if($v['banji']==1){
echo "xingmign为x的是班级1";
}else{
echo "xingmign为x的不是班级1";
}
}
}