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";
}
}
}