2014-02-27 85 views
0

以下數組具有重複和非重複數據。PHP未定義財產通知

$arr = array();  

//non repeating data 
$data = new StdClass(); 
$data->name = $name; 
$data->url = $url; 
$arr[] = $data; 

//repeating data 
foreach($records as $rec) { 
    $data = new StdClass(); 
    $data->text = $rec->text; 
    $data->time = $rec->time; 
    $arr[] = $data; 
} 

現在我要檢索的陣列的數據,所以我想這樣的:

echo $arr[0]->name; 
echo $arr[0]->url; 

foreach ($arr as $rec) { 
    echo $rec->text; 
    echo $rec->time; 
} 

我得到通知如下:

Notice: Undefined property: stdClass::$text in xx.php on line 48 

線#48 echo $rec->text;

我如何解決這個通知而不是隱藏它?

+2

請出示$錄音功的第一指標開始打印值ds? –

回答

4

您排列的第一個對象有nameurl,其餘的有texttime

您對第一個對象獲得Undefined property: stdClass::$text,因爲它沒有該屬性。

0

這只是因爲你的靜態數據對象不具有文本和時間字段,你可以通過這個簡單的檢查,解決這個問題:

foreach ($arr as $rec) { 
    if(isset($rec->text)) 
     echo $rec->text; 
    if(isset($rec->time)) 
     echo $rec->time; 
} 
0

此外,以cornelb的回答,你應該做這樣的代碼下面

$arr = array();  
foreach($records as $rec) { 
    $data = new StdClass(); 
    $data->text = $rec->text; 
    $data->time = $rec->time; 
    $data->name = $name; 
    $data->url = $url; 
    $arr[] = $data; 
} 

,或者你可以從你的陣列

for ($i=1; $i < count($rec); $i++) { 
    echo $rec[$i]->text; 
    echo $rec[$i]->time; 
}