如果我提出错误的问题或不可能的问题,请原谅我,我是PHP的新手。我有以下PHP代码
<?php
if ($this->arrCustomFields) {
foreach ($this->arrCustomFields as $field) {
if($field['blnView']) {
echo 'var '.preg_replace('/\s+/', '_', strtolower($field['lbl']->Name)).' = "'.$field['lbl']->Text.'";';
}
}
}
?>
此代码生成以下变量,我在同一页面的javascript中使用该变量。
var optic_drive = "No CD/DVD Media Installed"; var power_supply = "No PSU"; var ram = "2 GB"; var web_cam = "No"; var processor = "No Processor Installed"; var tested_by = "FM"; var psu = "None"; var data_storage = "Not Installed"; var grade = "B"; var serial_no = "24234234"; var hp_models = "D2200-VC"
上面注意var hp_models =“value”是一个具有动态变量名称的变量,我想将此变量转换为静态名称。原因是,如果我正在查看Dell,IBM或其他型号,则此变量名称将动态更改为供应商名称,例如“var ibm_models”,“var dell_models”,“var sony_models”等。我想将此变量名称转换为静态名称,例如somemodel或prodmodel,无论供应商如何。
所以我应该可以使用类似下面的内容。
<?php
echo $_models;
?>
无论供应商名称如何,我都应该能够获得变量的值。所以使用这个变量我使用“_”下划线作为分隔符,只有第一部分动态地为每条记录改变,第二部分是模型是静态的。
我希望我能够很好地解释。
答案 0 :(得分:0)
使用preg_replace管理以获得所需的结果。
<?php
if ($this->arrCustomFields) {
foreach ($this->arrCustomFields as $field) {
if($field['blnView']) {
$field['lbl']->Name = preg_replace("/.*Models/", "mymodels", $field['lbl']->Name);
echo 'var '.preg_replace('/\s+/', '_', strtolower($field['lbl']->Name)).' = "'.$field['lbl']->Text.'";';
}
}
}
?>