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を使用していますか?-$signはmysqlで有効ですが、foreachを使用して表示しようとすると、機能しません。では、データベーステーブルのフィールド名を編集せずにそれを削除するにはどうすればよいですか?

4

3 に答える 3

2

このクラスをどこで取得したかはわかりませんが、ここには無効な名前がたくさんあります

$goal campaign-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] => 
)

そのような変換ではなく、より有効な変数名を作成することをお勧めします

于 2012-04-20T10:12:27.007 に答える
1

このような?

$cleaned = new stdClass();
foreach($obj as $key => $val) {
  $newKey = str_replace(array('$','-'), '', $key);
  $cleaned->$newKey = $val;
}
print_r($cleaned);
于 2012-04-20T10:06:52.353 に答える
0

無効なPHP文字の削除は、rm*.phpと同じくらい簡単です。

于 2012-04-20T10:16:41.273 に答える