我有两个多维数组。第一个$properties
包含英文名称及其值。我的第二个数组包含翻译。一个例子
$properties[] = array(array("Floor"=>"5qm"));
$properties[] = array(array("Height"=>"10m"));
$translations[] = array(array("Floor"=>"Boden"));
$translations[] = array(array("Height"=>"Höhe"));
(它们是多维的,因为它们包含更多元素,但它们现在不重要了)
现在我想翻译这个数组,所以我最后是这样的:
$properties[] = array(array("Boden"=>"5qm"));
$properties[] = array(array("Höhe"=>"10m"));
我已经设法构建了 foreach 结构来循环遍历这些数组,但最后它没有被翻译,问题是,我如何告诉数组用值替换键。
我所做的是这样的:
//Translate Array
foreach ($properties as $PropertyArray) {
//need second foreach because multidimensional array
foreach ($PropertyArray as $P_KiviPropertyNameKey => $P_PropertyValue) {
foreach ($translations as $TranslationArray) {
//same as above
foreach ($TranslationArray as $T_KiviTranslationPropertyKey => $T_KiviTranslationValue) {
if ($P_KiviPropertyNameKey == $T_KiviTranslationPropertyKey) {
//Name found, save new array key
$P_KiviPropertyNameKey = $T_KiviTranslationValue;
}
}
}
}
}
问题在于保存新密钥的行:
$P_KiviPropertyNameKey = $T_KiviTranslationValue;
我知道这部分执行正确并包含正确的变量,但我相信这是分配新密钥的错误方式。
这是应该这样做的方式:
$properties[$oldkey] = $translations[$newkey];
所以我尝试了这个:
$PropertyArray[$P_KiviPropertyNameKey] = $TranslationArray[$T_KiviTranslationPropertyKey];
据我了解,上述行应该将 PropertyArray 的 P_KiviPropertyNameKey 更改为 Translation Array 的值,但我没有收到任何错误,也没有翻译名称。这应该如何正确完成?
感谢您的任何帮助!
附加信息
这是属性数组的一个活生生的例子
Array
(
[0] => Array
(
[country_id] => 4402
)
[1] => Array
(
[iv_person_phone] => 03-11
)
[2] => Array
(
[companyperson_lastname] => Kallio
)
[3] => Array
(
[rc_lot_area_m2] => 2412.7
)
[56] => Array
(
[floors] => 3
)
[57] => Array
(
[total_area_m2] => 97.0
)
[58] => Array
(
[igglo_silentsale_realty_flag] => false
)
[59] => Array
(
[possession_partition_flag] => false
)
[60] => Array
(
[charges_parkingspace] => 10
)
[61] => Array
(
[0] => Array
(
[image_realtyimagetype_id] => yleiskuva
)
[1] => Array
(
[image_itemimagetype_name] => kivirealty-original
)
[2] => Array
(
[image_desc] => makuuhuone
)
)
)
这是翻译数组的一个活生生的例子
Array
(
[0] => Array
(
[addr_region_area_id] => Maakunta
[group] => Kohde
)
[1] => Array
(
[addr_town_area] => Kunta
[group] => Kohde
)
[2] => Array
(
[arable_no_flag] => Ei peltoa
[group] => Kohde
)
[3] => Array
(
[arableland] => Pellon kuvaus
[group] => Kohde
)
)
我可以用另一种方式构建翻译数组。我这样做是因为在第二步中我必须检查密钥属于哪个组...