Я обновляю программное обеспечение, которое будет импортировать XML-файл банковской выписки в программное обеспечение для выставления счетов.
Одной из операций является итеративный поиск значений в структуре XML-файла (который сам файл преобразуется в ассоциативный массив в этой точке).
Чего я хотел бы добиться, так это установить какую-то карту в конфигурационном файле для использования остальной частью программного обеспечения, которая бы показывала, где искать конкретные данные в этом ассоциативном массиве, такие как дата транзакции, выплаченная сумма наличных и др. ,
Итак, первый массив карт cfg:
"map"=>array(
"date"=>"ARRAY['exec-date']",
"amount"=>"ARRAY['amount']['value']");
А затем используйте эту карту для получения соответствующих значений на основе (из XML) с использованием структуры, предоставленной в этих ключевых значениях с использованием переменных-переменных:
$amount = ${$map['amount']};
Это вообще возможно? Или я так устал, и это очень легко, и я просто заблокирован?
Вы можете использовать анонимные функции:
$map = array(
"date" => function($x) { return $x['exec-date']; },
"amount" => function($x) { return $x['amount']['value']; }
);
Тогда вы бы сделали:
$amount = $map['amount']($xml);
Других решений пока нет …