我有三个数组如下:
$names = array ("Josh", "Dami");
$details = array ("Douglas", "Port Erin");
$images = array ("1", "2");
然后我有以下foreach循环将值互相放入它自己的文本字段
<?php foreach($names as $a_name) { ?>
<tr>
<td><input type="text" size="10" name="names[]" value="<?php echo $a_name ?>" ></td>
<td><input type="text" size="10" name="details[]" value="<?php echo $a_detail ?>" ></td>
<td><input type="text" size="10" name="images[]" value="<?php echo $a_image ?>" ></td>
<td><?php echo $add_row_icon; echo (' '); echo $remove_row_icon;?></td>
</tr> <?php
}?>
显然,只运行names数组并将它们放入正确的字段中。我将如何嵌套另外两个foreach循环,以便显示名称,细节和图像?
答案 0 :(得分:2)
试试这个:
<?php foreach($names as $key => $a_name) { ?>
<tr><td><input type="text" size="10" name="details[]" value="<?php echo $details[$key] ?>" ></td><tr>
<?php } ?>
代码仅用于细节,对其他人也使用相同的东西。
答案 1 :(得分:1)
$names = array ("Josh", "Dami");
$details = array ("Douglas", "Port Erin");
$images = array ("1", "2");
// get the smallest of the arrays
$size = min(count($names), count($details), count($images));
<?php for ($i=0; $i<$size; $i++) { ?>
<tr>
<td><input type="text" size="10" name="names[]" value="<?php echo $names[$i]; ?>" ></td>
<td><input type="text" size="10" name="details[]" value="<?php echo $details[$i]; ?>" ></td>
<td><input type="text" size="10" name="images[]" value="<?php echo $images[$i]; ?>" ></td>
<td><?php echo $add_row_icon; echo (' '); echo $remove_row_icon; ?></td>
</tr>
<?php } ?>
答案 2 :(得分:0)
$names = array ("Josh", "Dami");
$details = array ("Douglas", "Port Erin");
$images = array ("1", "2");
<?php for ($i=0; $i<sizeof($names); $i++) { ?>
<tr>
<td><input type="text" size="10" name="names[]" value="<?php echo $names[$i] ?>" ></td>
<td><input type="text" size="10" name="details[]" value="<?php echo $details[$i] ?>" ></td>
<td><input type="text" size="10" name="images[]" value="<?php echo $images[$i] ?>" ></td>
<td><?php echo $add_row_icon; echo (' '); echo $remove_row_icon;?></td>
</tr> <?php
}?>
答案 3 :(得分:-1)
你应该在你的问题中使用foreach
循环 - 你只是忘记循环检索索引键,因此:
<?php foreach ($names as $key => $a_name) { ?>
<tr>
<td><input type="text" size="10" name="names[]" value="<?php echo $a_name ?>" ></td>
<td><input type="text" size="10" name="details[]" value="<?php echo $details[$key] ?>" ></td>
<td><input type="text" size="10" name="images[]" value="<?php echo $images[$key] ?>" ></td>
<td><?php echo $add_row_icon; echo (' '); echo $remove_row_icon;?></td>
</tr> <?php
} ?>
但说实话,我考虑将这些多个数组更改为一个多维数组,如下所示:
$users = array(
array(
'name' => 'Josh',
'detail' => 'Douglas',
'image' => '1',
),
array(
'name' => 'Dami',
'detail' => 'Port Erin',
'image' => '2',
),
);
另外,不要依赖names[]
和details[]
以正确的顺序发送(可能会发生值可以交换)因此尽可能使用索引。现在你需要做的是:
<?php foreach ($users as $i => $user) { ?>
<tr>
<td><input type="text" size="10" name="names[<?php echo $i ?>]" value="<?php echo $user['name'] ?>" ></td>
<td><input type="text" size="10" name="details[<?php echo $i ?>]" value="<?php echo $user['detail'] ?>" ></td>
<td><input type="text" size="10" name="images[<?php echo $i ?>]" value="<?php echo $user['image'] ?>" ></td>
<td><?php echo "{$add_row_icon} {$remove_row_icon}" ?></td>
</tr>
<?php } ?>