2012-04-20 75 views
0
stdClass Object 
(
    [campaign-ID] => 1 
    [campaign_name] => Sample Campaign 
    [start_duration] => 2012-04-17 
    [end_duration] => 2012-04-17 
    [activity$] => 
    [survey_settings] => Ordering K-Cup Packs 
    [$limit] => sample 
    [$goal] => 
) 

如何刪除 - 和$?使用PHP? 因爲-$符號在mysql中有效,但是當我嘗試使用foreach顯示它時,它不會工作。那麼,我應該怎麼做,刪除數據庫表中的字段名稱而不編輯?

+0

當我嘗試使用foreach顯示它,它不會工作 - 應該工作。請詳細說明。 – 2012-04-20 10:05:26

+0

這樣做會是錯誤的例子: echo $ campaign - > $ limit; 對不對? – Jetoox 2012-04-20 10:06:40

+0

對不起,你是怎麼得到這個班的? '$'不是在mysql中命名爲 – Baba 2012-04-20 10:07:16

回答

2

我不知道你在哪裏得到這個類,但在這裏

有這麼多的無效命名實例

$goalcampaign-ID

我不得不重構你的類,它看上去像這

$st= new stdClass(); 
$st->{"campaign-ID"} = 1 ; 
$st->campaign_name = "Sample Campaign" ; 
$st->start_duration = "2012-04-17" ; 
$st->start_duration = "2012-04-17" ; 
$st->{'activity$'} = null ; 
$st->survey_settings = "Ordering K-Cup Packs" ; 
$st->{'$limit'} = "sample" ; 
$st->{'$goal'} = null ; 


$std = new stdClass(); 
foreach($st as $key => $value) 
{ 
    $key = str_replace(array('$',"-"),array('',"_"),$key); 
    $std->{$key} = $value ; 
} 

echo "<pre>" ; 
print_r($std); 

輸出

stdClass Object 
(
    [campaign_ID] => 1 
    [campaign_name] => Sample Campaign 
    [start_duration] => 2012-04-17 
    [activity] => 
    [survey_settings] => Ordering K-Cup Packs 
    [limit] => sample 
    [goal] => 
) 

我會建議你創建更有效的變量名,而不是這樣的轉換

+0

我也會試試這個。 :) – Jetoox 2012-04-20 10:14:22

+0

只是再次更新,以便您的最終輸出仍然有效 – Baba 2012-04-20 10:18:14

1

是否這樣?

$cleaned = new stdClass(); 
foreach($obj as $key => $val) { 
    $newKey = str_replace(array('$','-'), '', $key); 
    $cleaned->$newKey = $val; 
} 
print_r($cleaned); 
+0

我會嘗試這一個。 :) – Jetoox 2012-04-20 10:09:07

+0

我編輯它,因爲它導致無限循環,您需要創建一個新的對象與清潔的鍵。 – 2012-04-20 10:14:19

0

刪除無效字符PHP是爲RM * .PHP一樣簡單。