带数组的可变变量

Variable variables with arrays

我正在更新将 XML 银行对帐单文件导入发票软件的软件。 其中一项操作是通过迭代在 xml 文件的结构中查找值(此时文件本身已转换为关联数组)。

我想要实现的是在配置文件中设置某种映射供软件的其余部分使用,这将显示在该关联数组中查找特定数据的位置,例如交易日期,支付的现金金额及其他。

所以首先cfg映射数组:

    "map"=>array(
        "date"=>"ARRAY['exec-date']",
        "amount"=>"ARRAY['amount']['value']"
    );

然后使用该映射获取适当的值(来自 XML),使用这些键值中提供的结构,使用 Variable-variables:

$amount = ${$map['amount']};

这可能吗?还是我太累了,这很容易,我只是受阻了?

您可以使用匿名函数:

$map = array(
    "date" => function($x) { return $x['exec-date']; },
    "amount" => function($x) { return $x['amount']['value']; }
);

那么你会做:

$amount = $map['amount']($xml);