使用foreach输出时如何解决多个不需要的数组

时间:2018-03-30 06:39:53

标签: php

当我查看foreach循环的输出时,我得到了数组本身的多个副本。问题来自下面 exper3.php 的输出。这是我的代码:

文件 exper.php

<!DOCTYPE html>
<html>
<head><title>Multiple form with output</title></head>
<body>
<form action="exper1.php" method="POST">
    Banyaknya nilai yang anda masukkan 
    <input type="text" name="nilai">
    <input type="submit" name="kirim" value="kirim">
</form>
</body>
</html>

文件 exper1.php

<!DOCTYPE html>
<html>
<head><title>Multiple form with output</title></head>
<body>
<form action="exper1.php" method="POST">
    Banyaknya nilai yang anda masukkan 
    <input type="text" name="nilai">
    <input type="submit" name="kirim" value="kirim">
</form>
<br>
<form action="exper3.php" method="POST">
<?php 
$nilai = $_POST['nilai'];
    $wtf = $nilai/$nilai;
    $i = $nilai + 1;
    $counter = 1;
do {
        echo "Nilai ke-"; 
        echo $counter;
        echo " : ";
        echo "<input type='text' name='hasil[]'>";
        echo "<br>";
        $counter++;
        $wtf++;
    } while ($wtf<$i);
?>
<input type="submit" name="simpan" value="simpan">
</form>
</body>
</html>

文件 exper3.php

<!DOCTYPE html>
<html>
<head><title>Multiple form with output</title></head>
<body>
<form action="exper1.php" method="POST">
    Banyaknya nilai yang anda masukkan 
    <input type="text" name="nilai">
    <input type="submit" name="kirim" value="kirim">
</form>
<br>
<?php
$hasil = $_POST['hasil'];
$i=1;
    foreach ($hasil as $value) {
        echo "Nilai ke ".$i++." adalah ".join('<br>Nilai ke ' .$i++. ' adalah ', $hasil)."<br>";;
}
?>
</body>
</html>

输出

Output of file expert.php: First

Output of file exper1.php: Second

Output of file exper3.php: Third, the problem

exper3.php 的预期输出应如下所示:

Nilai ke 1 adalah 343
Nilai ke 2 adalah 732
Nilai ke 3 adalah 958

不喜欢这样:

Nilai ke 1 adalah 343
Nilai ke 2 adalah 732
Nilai ke 2 adalah 958
Nilai ke 3 adalah 343
Nilai ke 4 adalah 732
Nilai ke 4 adalah 958
Nilai ke 5 adalah 343
Nilai ke 6 adalah 732
Nilai ke 6 adalah 958

我的代码出了什么问题?感谢

1 个答案:

答案 0 :(得分:0)

在这种情况下,join和foreach相互重复 - join已经在多个值上运行。

foreach ($hasil as $value) {
    echo "Nilai ke ".$i++." adalah ".$value."<br />";
}

会给你想要的结果