2010-12-18 3 views
1

У меня есть функция, которая вводит введенную пользователем строку и массив данных (key => value), который выглядит следующим образом:Строка-манипуляция в PHP, вставка ключей массива в пользовательской строке

$text = "Hi! My name is @name, and I live in @location."; 
$dataArray = array("name" => "Mikal", "location" => "Oslo, Norway"); 

function MakeString($text, array $dataArray) 
{ 
// return manipulated string... 
} 

Я хотел бы свою функцию, чтобы поменять местами строки @variables с данными из массива, где строка переменной спички массива ключей (если он делает), так что функция возвращает:

"Hi! My name is Mikal, and I live in Oslo, Norway."

ответ

1
foreach($dataArray as $key=>$value) 
    { 
    $text= str_replace("@".$key,$value,$text); 
    } 
+0

Спасибо! Вы рассматриваете preg_replace вместо str_replace в этой ситуации? Может быть, некоторые улучшения производительности, или что вы думаете? – CoderBang

+0

Я действительно не думаю, что preg_replace будет более эффективным ... на самом деле php.net говорит, что: «Если вам не нужны фантастические правила замены (например, регулярные выражения), вы всегда должны использовать эту функцию вместо ereg_replace () или preg_replace(). " – Headshota

+0

@MikalBen вам нужны эти улучшения? Или вы спрашиваете «на всякий случай?». Если это так - забудьте PHP вообще, напишите в машинных кодах непосредственно в ОЗУ. Это будет значительно быстрее. Если у вас нет идеи, что это такое, больше не задавайте таких вопросов. –

Смежные вопросы