нужна помощь в переборе массива, сгенерированного yaml (php)

Я создаю приложение 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);
}

1

Решение

Ты рядом.

Две вещи:

  1. foreach может принять key => value синтаксис. Используя это вы можете получить
    дорожка.
  2. PHP не использует точечная запись для массивов. Оно использует
    скобки.

Попробуйте следующее:

foreach ($array as $path => $sub) {
searchAndReplace($path,$sub['replace'],$sub['with']);
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]