我想坚持的是这一点:
对于每个不包含“ + price”的名称,将值回显到输入类=“ optionname”中 对于每个包含“ + price”的名称,将值echo放入unput class =“ optionprix”
我的php和html:
foreach($fields as $field):
<input type="text" class="optionname" name="<?php echo $field['name']; ?>" value="<?php echo $field['value']; ?>"/>
Prix : <input type="text" class="optionprix" name="<?php echo $field['name'].'+price'; ?>" value="<?php echo $optionprix; ?>"
endforeach;
我的记录$ fields为JSON格式=>
array(8) {
[0] => array(2) {
["name"] => string(26) "checkboxes-label---3499163"
["value"] => string(7) "Options"
}
[1] => array(2) {
["name"] => string(25) "single-checkbox---3499163"
["value"] => string(34) "Aide à l installation du parcours"
}
[2] => array(2) {
["name"] => string(31) "single-checkbox---3499163+price"
["value"] => string(3) "500"
}
[3] => array(2) {
["name"] => string(25) "single-checkbox---3499163"
["value"] => string(27) "Location du système vidéo"
}
[4] => array(2) {
["name"] => string(31) "single-checkbox---3499163+price"
["value"] => string(2) "10"
}
[5] => array(2) {
["name"] => string(25) "single-checkbox---3499163"
["value"] => string(4) "test"
}
[6] => array(2) {
["name"] => string(31) "single-checkbox---3499163+price"
["value"] => string(2) "13"
}
[7] => array(2) {
["name"] => string(18) "required---3499163"
["value"] => bool(false)
}
}
这样,当我转储echo var_dump($ field)=>
array(2) {
["name"] => string(25) "single-checkbox---3499163"
["value"] => string(34) "Aide à l installation du parcours"
}
array(2) {
["name"] => string(31) "single-checkbox---3499163+price"
["value"] => string(3) "500"
}
我不确定完成此操作的最佳方法,我使用count,in_array和explode方法进行搜索,但未成功
答案 0 :(得分:1)
最准确的是没有正则表达式,您只需要检查条件块中的最后6个字符是否匹配。
foreach ($fields as $field) {
if (substr($field['name'], -6) !== "+price") {
echo "<input type=\"text\" class=\"optionname\" name=\"{$field['name']}\" value=\"{$field['value']}\"/>";
} else {
echo "Prix : <input type=\"text\" class=\"optionprix\" name=\"{$field['name']}+price\" value=\"$optionprix\">";
}
}
答案 1 :(得分:0)
这仅检查名称是否以'price'结尾
if(preg_match('/price$/', $field['name'])) {
//Prix input
} else{
//normal input
}
答案 2 :(得分:0)
您可以通过使用strpos()
来非常简单地执行以下操作
<?php
foreach($fields as $field):
if ( strpos($field['name'], '+price') === FALSE ) :
?>
<input type="text" class="optionname" name="<?php echo $field['name']; ?>" value="<?php echo $field['value']; ?>"/>
<?php
else:
?>
Prix : <input type="text" class="optionprix" name="<?php echo $field['name'].'+price'; ?>" value="<?php echo $optionprix; ?>"
<?php
endif;
endforeach;
?>