Я создаю приложение Symfony2, которое ищет и заменяет строки из файлов
Я создал файл yaml со следующим содержимым:
parameters:
file.search_and_replace:
"path/dir/filename":
replace: 'word'
with: 'anotherword'
"path_2/dir/filename_2":
replace: 'apples'
with: 'oranges'
Теперь для получения содержимого я использую следующий синтаксис:
$array = $this->getContainer()->getParameter('file.search_and_replace');
Если я дам дамп переменной, как это:
var_dump($array);
это возвращается
array(2)
{
'path/file/filename' =>
array(2)
{
'replace' => string(4) "word"'with' => string(11) "anotherword"}
'path_2/file/filename_2' =>
array(2)
{
'replace' => string(6) "apples"'with' => string(7) "oranges"}
}
Мне нужно найти способ перебрать этот массив
поэтому я могу передать содержимое созданной мной функции, для которой нужны следующие параметры:
searchAndReplace('filepath','replace_this_word','with_this_word');
что-то вроде:
foreach($array as $file)
{
searchAndReplace($file.path,$file.replace,$file.with);
}
Ты рядом.
Две вещи:
foreach
может принять key => value
синтаксис. Используя это вы можете получитьПопробуйте следующее:
foreach ($array as $path => $sub) {
searchAndReplace($path,$sub['replace'],$sub['with']);
}
Других решений пока нет …