2012-04-20 1 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] => 
) 

Comment supprimer les - et $? en utilisant php? Parce que - et $ signe est valide dans mysql, mais quand je vais essayer de l'afficher en utilisant foreach, ça ne marchera pas. Alors que dois-je faire pour supprimer cela sans modifier les noms de champs dans la table de base de données?

+0

quand je vais essayer de l'afficher en utilisant foreach, ça ne fonctionnera pas - devrait fonctionner. détails, s'il vous plaît .. –

+0

il serait faux de faire l'exemple: echo $ campaign -> $ limite; à droite? – Jetoox

+0

Désolé, comment avez-vous eu cette classe? "$" n'est pas une variable PHP valide. – Baba

Répondre

2

ne sais pas où vous avez obtenu cette classe, mais il y a tellement de Naming invalides ici

Exemple

$goalcampaign-ID etc.

je devais reconstruire votre classe et ressemblais ce

$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); 

Sortie

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

Je vous conseille de créer des variables plus valides nom plutôt que de telles conversions

+0

Je vais essayer celui-ci aussi. :) – Jetoox

+0

Juste mis à jour à nouveau afin que votre sortie finale serait encore valide – Baba

1

Comme ça?

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

Je vais essayer celui-ci. :) – Jetoox

+0

Je l'ai édité, car il en résulte une boucle infinie, vous devez créer un nouvel objet avec les touches nettoyées. –

0

Suppression de caractères PHP non valides est aussi simple que rm * .php.

Questions connexes