Cara mendapatkan dua nilai array dalam satu foreach()

Ada dua nilai yang ingin saya dapatkan dari pengguna yaitu nama dan harga. Saya telah membuat fungsi pembuatan baris otomatis yang menghasilkan kotak input dengan nama yang sama. Sekarang masalahnya saya ingin menyimpannya di database. Saya menggunakan foreach tetapi itu hanya mendapatkan satu array. Saya ingin menyimpan nama dan harga. Bagaimana saya bisa melakukan itu. Ini kode saya.

Formulir HTML

<form method="post">
    <input type="text" name="name[]" /><input type="text" name="price[]" />
    <input type="text" name="name[]" /><input type="text" name="price[]" />
    <input type="text" name="name[]" /><input type="text" name="price[]" />
    <input type="text" name="name[]" /><input type="text" name="price[]" />

    <input type="submit" value="Submit" name="submit" />
</form>

Kode PHP

if(isset($_POST['submit']))
{
    foreach($_POST['name'] as $name)
    {
        echo $name;
    }
}

person Abdullah    schedule 05.01.2016    source sumber
comment
Semua jawaban saat ini akan berhasil, jadi pilihlah dan terima salah satu jawaban yang sesuai dengan preferensi Anda   -  person RiggsFolly    schedule 05.01.2016


Jawaban (4)


Panggil juga indeks dalam loop dan kemudian pilih nilai yang sesuai dari array lainnya.

foreach($_POST['name'] as $id => $name)
{
    echo $name;
    echo $_POST['price'][$id]
}
person Geoff Atkins    schedule 05.01.2016

Bagaimana dengan ini

if(isset($_POST['submit']))
{
    $names = $_POST['name']; # array
    $prices = $_POST['price']; # array

    foreach($names  as $id => $name)
    {
        echo $name;
        echo "<br>";
        echo $prices[$id]
    }
}
person Abdulla Nilam    schedule 05.01.2016
comment
@Abdullah Periksa ini - person Abdulla Nilam; 05.01.2016

Asalkan Anda tahu bahwa kedua array akan memiliki panjang yang sama, perulangan for sederhana sudah cukup:

if(isset($_POST['submit']) && count($_POST['name']) == count($_POST['price']))
{
    for($i=0; $i < count($_POST['name']); $i++)
    {
        echo $_POST['name'][$i] . ' ' . $_POST['price'][$i];
    }
}
person Steve    schedule 05.01.2016

Coba ini

$names = array_combine($_POST['name'], $_POST['price']);
foreach($names as $firstname => $price) {
  echo $firstname . ' ' . $price . '<br>';
}
person Syed mohamed aladeen    schedule 05.01.2016