带数组的可变变量
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);
我正在更新将 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);