我有一个来自mysql的值,我希望将其拆分为表单中的多个输入字段。
// This is the value from mysql...
$value = "10 - Coles, 15 - Aldi, 5 - Target, 7.77 - Kmart";
// This is how I want to split it....
$amt_1 = "10";
$desc_1 = "Coles";
$amt_2 = "15";
$desc_2 = "Aldi";
$amt_3 = "5";
$desc_3 = "Target";
$amt_4 = "7.77";
$desc_4 = "Kmart";
//So that it can be displayed in input boxes...
<input type="text" value="<?php echo $amt_1; ?>" />
<input type="text" value="<?php echo $desc_1; ?>" />
<input type="text" value="<?php echo $amt_2; ?>" />
<input type="text" value="<?php echo $desc_2; ?>" />
<input type="text" value="<?php echo $amt_3; ?>" />
<input type="text" value="<?php echo $desc_3; ?>" />
<input type="text" value="<?php echo $amt_4; ?>" />
<input type="text" value="<?php echo $desc_4; ?>" />
现在,有一个条件。
$value
可以为空,也可能不足以分成4个部分,这意味着它可以$value = "10 - Coles, 15 - Aldi";
能够容纳$amt_1, $desc_1
和{{1} }}。或任何一组1,2,3或4个分裂。
答案 0 :(得分:1)
如果你想要4对,这是我的方法:
$value = "10 - Coles, 15 - Aldi, 5 - Target, 7.77 - Kmart";
$valArr = explode(', ', $value);
for ($i=0; $i<4; $i++) {
if(isset($valArr[$i])) {
$currentVal = explode(' - ',$valArr[$i]);
echo '<input type="text" name="amt_'.($i+1).'" value="'.$currentVal[0].'" />';
echo '<input type="text" name="desc_'.($i+1).'" value="'.$currentVal[1].'" />';
} else {
echo '<input type="text" name="amt_'.($i+1).'" value="NO VALUE" />';
echo '<input type="text" name="desc_'.($i+1).'" value="NO VALUE" />';
}
}
但对我来说更合适的做法是:
$value = "10 - Coles, 15 - Aldi, 5 - Target, 7.77 - Kmart";
$valArr = explode(', ', $value);
foreach ($valArr as $pair) {
$currentVal = explode(' - ',$pair);
echo '<input type="text" name="amt_'.($i+1).'" value="'.$currentVal[0].'" />';
echo '<input type="text" name="desc_'.($i+1).'" value="'.$currentVal[1].'" />';
}
答案 1 :(得分:0)
在foreach
循环内的有效内容中使用explode:
// This is the value from mysql...
$value = "10 - Coles, 15 - Aldi, 5 - Target, 7.77 - Kmart";
$myArray = explode(",", $value);//separating the parts
foreach ($myArray as $data)
{
$buffer = explode("-", $data);
$first = trim($buffer[0]);
$second = trim($buffer[1]);
if ($first != "")
{
echo "<input type='text' value='{$first}' />";
echo "<input type='text' value='{$second}' />";
}
}
答案 2 :(得分:0)
使用以下代码
<?php
$value = "10 - Coles, 15 - Aldi, 5 - Target, 7.77 - Kmart";
$arrayValue = explode(', ', $value);
$i=0;
foreach ($arrayValue as $new) {
$i++;
$exactValue = explode(' - ',$new);
echo '<input type="text" name="amt_'.($i).'" value="'.$exactValue[0].'" />';
echo '<input type="text" name="desc_'.($i).'" value="'.$exactValue[1].'" /><br>';
}
?>