Cara menggunakan foreach php mysql

Saya sedang mengembangkan aplikasi php yang menggunakan kelas database untuk menanyakan mySQL.

kelasnya ada di sini: http://net.tutsplus.com/tutorials/php/real-world-oop-with-php-and-mysql/

Saya membuat beberapa penyesuaian di kelas untuk memenuhi kebutuhan saya, tetapi ada masalah (mungkin yang bodoh)

Saat menggunakan select () ia mengembalikan array multidimensi seperti itu untuk tabel yang memiliki 3 cols (id, firstname, lastname):

 Array 
 (
 [0] => Array 
 (
 [Id] => 1 
 [Nama depan] => Nama depan satu 
 [Nama belakang] => Nama belakang 
) 

 [1] => Array 
 (
 [Id] => 2 
 [Nama depan] => Nama depan dua 
 [Nama belakang] => Nama belakang dua
) 

 [2] => Array 
 (
 [Id] => 3 
 [Nama depan] => Nama depan tiga 
 [Nama belakang] => Nama belakang tiga 
) 
) 

Sekarang saya ingin array ini digunakan sebagai hasil mysql (mysql_fetch_assoc).

Saya tahu bahwa ini dapat digunakan dengan foreach () tapi ini dengan array sederhana. jadi saya pikir saya harus mendeklarasikan foreach baru () dengan masing-masing foreach (), tapi saya pikir ini bisa memperlambat atau menyebabkan beban server yang lebih tinggi.

Jadi bagaimana menerapkan foreach () dengan array multidimensi ini dengan cara paling sederhana?

Terima kasih

Anda dapat menggunakan foreach di sini dengan baik.

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}

Saya pikir Anda terbiasa mengakses data dengan indeks numerik (seperti $row[0]), tetapi ini tidak perlu. Kita dapat menggunakan array asosiatif untuk mendapatkan data yang kita cari.

Anda dapat menggunakan array_walk_recursive:

array_walk_recursive($array, function ($item, $key) {
    echo "$key holds $item\n";
});

Ini akan menjadi komentar di bawah jawaban Brad, tetapi saya tidak memiliki reputasi yang cukup tinggi.

Baru-baru ini saya menemukan bahwa saya memerlukan kunci array multidimensi juga, yaitu, bukan hanya indeks untuk array, di loop foreach.

Untuk mencapai itu, Anda bisa menggunakan sesuatu yang sangat mirip dengan jawaban yang diterima, tetapi sebaliknya bagi kunci dan nilai sebagai berikut

foreach ($mda as $mdaKey => $mdaData) {
    echo $mdaKey . ": " . $mdaData["value"];
}

Semoga itu bisa membantu seseorang.

Holla/Halo , Saya mengerti! Anda dapat dengan mudah mendapatkan nama file, tmp_name, file_size dll. Jadi saya akan menunjukkan kepada Anda cara mendapatkan nama file dengan garis kode.

for ($i = 0 ; $i < count($files['name']); $i++) {
    echo $files['name'][$i].'
'; }

Ini diuji pada PC saya.

Contoh dengan mysql_fetch_assoc():

while ($row = mysql_fetch_assoc($result))
{
    /* ... your stuff ...*/
}

Dalam kasus Anda dengan foreach, dengan array $result Anda dapatkan dari select():

foreach ($result as $row)
{
    /* ... your stuff ...*/
}

Ini hampir sama, dengan iterasi yang tepat.

Untuk mendapatkan detail dari setiap nilai dalam array multidimensi cukup mudah setelah Anda memiliki array Anda di tempat. Jadi inilah arraynya:

$example_array = array(
array('1','John','Smith'),
array('2','Dave','Jones'),
array('3','Bob','Williams')
);

Kemudian gunakan foreach loop dan jalankan array seperti ini:

foreach ($example_array as $value) {
echo $value[0]; //this will echo 1 on first cycle, 2 on second etc....
echo $value[1]; //this will echo John on first cycle, Dave on second etc....
echo $value[2]; //this will echo Smith on first cycle, Jones on second etc....
}

Anda dapat menggemakan apa pun yang Anda suka di sekitarnya, jadi gema ke dalam tabel:

echo ""
    foreach ($example_array as $value) {
    echo "";
    echo "";
    echo "";
    }
echo "
" . $value[0] . "" . $value[1] . "" . $value[2] . "
";

Harus memberi Anda tabel seperti ini:

|1|John|Smith   |
|2|Dave|Jones   |
|3|Bob |Williams|

Dengan array dalam php, loop foreach selalu merupakan solusi yang cantik.
Dalam hal ini bisa jadi misalnya:

foreach($my_array as $number => $number_array)
    {
    foreach($number_array as $data = > $user_data)
        {
            print "Array number: $number, contains $data with $user_data.  
"; } }

Idealnya array multidimensi biasanya array array jadi saya pikir mendeklarasikan array kosong, kemudian membuat pasangan kunci dan nilai dari hasil db dalam array terpisah, akhirnya Dorong setiap array yang dibuat pada iterasi ke array luar. Anda dapat mengembalikan array luar jika ini adalah panggilan fungsi yang terpisah. Semoga itu bisa membantu

$response = array();    
foreach ($res as $result) {
        $elements = array("firstname" => $result[0], "subject_name" => $result[1]);
        array_Push($response, $elements);
    }

Saya tahu ini jawaban yang cukup lama. Berikut adalah solusi yang lebih cepat tanpa menggunakan foreach 

Gunakan array_column

print_r(array_column($array, 'firstname')); #returns the value associated with that key 'firstname'

Anda juga dapat memeriksa sebelum menjalankan operasi di atas

if(array_key_exists('firstname', $array)){
   print_r(array_column($array, 'firstname'));
}

Jika Anda perlu melakukan manipulasi string pada elemen array, mis., Kemudian menggunakan fungsi callback array_walk_recursive (atau bahkan array_walk ) berfungsi dengan baik. Keduanya berguna ketika secara dinamis menulis pernyataan SQL.

Dalam penggunaan ini, saya memiliki array ini dengan setiap elemen membutuhkan koma dan baris baru yang ditambahkan.

$some_array = [];

data dalam $ some_array
0: "Beberapa string dalam array"
1: "String lain dalam array" 

Per php.net

Jika callback perlu bekerja dengan nilai aktual array, tentukan parameter panggilan balik pertama sebagai referensi. Lalu, apapun perubahan yang dilakukan pada elemen-elemen tersebut akan dilakukan dalam array asli diri.

array_walk_recursive($some_array, function (&$value, $key) {
    $value .= ",\n";
});

Hasil:
"Beberapa string dalam array,\n"
"String lain dalam array,\n" 

Berikut konsep yang sama menggunakan array_walk untuk menambahkan nama tabel database ke bidang.

$fields = [];

data dalam $ bidang:
0: "Nama Depan"
1: "Nama Belakang" 

$tbl = "Employees"

array_walk($fields, 'prefixOnArray', $tbl.".");

function prefixOnArray(&$value, $key, $prefix) { 
    $value = $prefix.$value; 
}

Hasil:
"Karyawan.Nama Pertama"
"Karyawan.Nama Terakhir" 


Saya akan ingin tahu apakah kinerja dipermasalahkan di muka, tetapi untuk array dengan beberapa elemen, IMHO, itu hampir tidak layak untuk dipertimbangkan.

Tidakkah foreach normal pada dasarnya menghasilkan hasil yang sama dengan mysql_fetch_assoc dalam kasus Anda?

saat menggunakan foreach pada array itu, Anda akan mendapatkan array yang berisi tiga kunci: 'id', 'firstname' dan 'lastname'.

Itu harus sama dengan yang akan diberikan mysql_fetch_assoc (dalam satu lingkaran) untuk setiap baris.

foreach ($parsed as $key=> $poke)
{
    $insert = mysql_query("insert into soal 
                          (pertanyaan, a, b, c, d, e, jawaban)
                          values
                          ('$poke[question]',
                          '$poke[options][A]',
                          '$poke[options][B]',
                          '$poke[options][C]',
                          '$poke[options][D]',
                          '$poke[options][E]',
                          '$poke[answer]')");
}

Apa itu foreach pada PHP?

Perulangan foreach merupakan perulangan khusus untuk pembacaan nilai array. Seperti yang telah kita ketahui setiap array memiliki pasangan key dan value. Key adalah posisi dari array, dan value adalah isi dari array.

Foreach untuk apa?

Foreach di gunakan untuk perulangan yang datanya dalam bentuk array. terkadang kita memiliki data dalam bentuk array yang harus kita tampilkan dengan menggunakan perulangan for.

Apa yang dimaksud dengan FOR EACH dan bagaimana cara kerja dari perintah tersebut?

Perintah Foreach pada PHP merupakan perintah yang melakukan aksi perulangan data kondisi array yang telah dimasukkan ke dalam variabel yang sudah kita buat. Foreach itu pasti tidak lepas dari yang namanya array. Foreach juga biasanya digunakan untuk bahasa pemrograman PHP.

Apa perbedaan foreach statement dengan FOR statement?

Secara sederhana foreach merupakan salah satu dari build in function untuk looping yang sangat berguna untuk mempersingkat kodingan. Kalau for sendiri merupakan perulangan dan bukan build in function sama seperti while. Jika anda ingin mempersingkat kodingan. Maka gunakanlah foreach.