2012-11-01 6 views
-5
$replacements = array(
    '{order_id}' => $order_id, 
    '{site_url}' => $settings["site_url"], 
    '{email}' => $user_email, 
    '{last_name}' => $last_name, 
    '{phone}' => $phone, 
    '{order_total}' => currency_format($order_total), 
); 

    foreach($replacements as $param => $value){ 
    $sms = str_replace($param, $value, $db2->f('sms')); 
    $user_to = str_replace($param, $value, $db2->f('user_to')); 
    $user_from = str_replace($param, $value, $db2->f('user_from')); 
    $user_subject = str_replace($param, $value, $db2->f('user_subject')); 
    $user_body = str_replace($param, $value, $user_body); 
    $admin_to = str_replace($param, $value, $db2->f('admin_to')); 
    $admin_from = str_replace($param, $value, $db2->f('admin_from')); 
    $admin_subject = str_replace($param, $value, $db2->f('admin_subject')); 
    $admin_body = str_replace($param, $value, $db2->f('admin_body')); 
} 

Quel est le problème? Pourquoi ne peut pas travailler? Tableau à la conversion de chaîne ....Conversion de la chaîne en chaîne

Quelqu'un peut-il suggérer comment réduire le nombre de lignes de code dans un tel cas?

+0

Où voulez-vous? Qu'est-ce que $ db2? Quels sont $ order_id, $ settings, etc ... – Bgi

+0

Lorsque vous posez une question sur le surdosage de la pile. Vous devriez dire aux gens quel est le problème, ne pas leur demander :) – Evert

+0

http://stackoverflow.com/questions/3819423/convert-this-associative-array-to-a-string-or-single-indexed-array –

Répondre

2
$replacements = array(
    '{order_id}' => $order_id, 
    '{site_url}' => $settings["site_url"], 
    '{email}' => $user_email, 
    '{last_name}' => $last_name, 
    '{phone}' => $phone, 
    '{order_total}' => currency_format($order_total), 
); 

$templates = array(
    'sms' => $db2->f('sms'), 
    'user_to' => $db2->f('user_to'), 
    'user_from' => $db2->f('user_from'), 
    'user_subject' => $db2->f('user_subject'), 
    'user_body' => $db2->f('user_body'), 
    'admin_to' => $db2->f('admin_to'), 
    'admin_from' => $db2->f('admin_from'), 
    'admin_subject' => $db2->f('admin_subject'), 
    'admin_body' => $db2->f('admin_body') 
); 

foreach($templates as $way => $tmp){ 
    $templates[$way] = strtr($tmp, $replacements); 
} 
1

Vous écrasez $ user_body chaque fois que vous bouclez. Essayez que:

$replacements = array(
    '{order_id}' => $order_id, 
    '{site_url}' => $settings["site_url"], 
    '{email}' => $user_email, 
    '{last_name}' => $last_name, 
    '{phone}' => $phone, 
    '{order_total}' => currency_format($order_total), 
); 

$user_body = $db2->f('user_body'); 
foreach($replacements as $param => $value){ 
    $user_body = str_replace($param, $value, $user_body); 
} 

echo $user_body; 
+0

Fonctionne, mais l'avis n'est pas perdu ... – Luntegg

+0

De quel avis parlez-vous? – Bgi

+0

Conversion de tableau en chaîne dans ................... – Luntegg