Saya ingin membuat selectbox
menggunakan dua larik, satu berisi kode negara dan satu lagi berisi nama negara.
Ini contohnya:
<?php
$codes = array('tn','us','fr');
$names = array('Tunisia','United States','France');
foreach( $codes as $code and $names as $name ) {
echo '<option value="' . $code . '">' . $name . '</option>';
}
?>
Metode ini tidak berhasil untuk saya. Ada saran?
foreach
beroperasi hanya pada satu larik pada satu waktu.Cara susunan Anda terstruktur, Anda dapat menyusunnya
array_combine()
menjadi larik pasangan nilai kunci laluforeach
larik tunggal itu:Atau seperti yang terlihat di jawaban lain, Anda dapat melakukan hardcode array asosiatif sebagai gantinya.
sumber
Gunakan
array_combine()
untuk memadukan larik bersama-sama dan mengulangi hasilnya.sumber
Gunakan array asosiatif:
Saya percaya bahwa menggunakan array asosiatif adalah pendekatan yang paling masuk akal dibandingkan dengan menggunakan
array_combine()
karena begitu Anda memiliki array asosiatif, Anda cukup menggunakanarray_keys()
atauarray_values()
mendapatkan array yang sama persis dengan yang Anda miliki sebelumnya.sumber
array_combine()
sudah menghasilkan larik asosiatif, Anda mungkin ingin lebih jelas tentang memulainya sebagai asosiatif.array_map tampaknya bagus untuk ini juga
Manfaat lainnya adalah:
Jika satu array lebih pendek dari yang lain, callback menerima
null
nilai untuk mengisi celah tersebut.Anda dapat menggunakan lebih dari 2 array untuk melakukan iterasi.
sumber
Mengapa tidak mengonsolidasi menjadi array asosiatif
multi-dimensi? Sepertinya Anda melakukan kesalahan ini:menjadi:
sumber
Semuanya teruji sepenuhnya
3 cara untuk membuat dropdown dinamis dari array.
Ini akan membuat menu dropdown dari array dan secara otomatis menetapkan nilainya masing-masing.
Metode # 1 (Array Normal)
Metode # 2 (Array Normal)
Metode # 3 (Array Asosiatif)
sumber
foreach hanya bekerja dengan satu larik. Untuk melangkah melalui beberapa array, lebih baik menggunakan fungsi each () dalam loop sementara:
each () mengembalikan informasi tentang kunci dan nilai saat ini dari larik dan menambah penunjuk internal sebanyak satu, atau mengembalikan salah jika telah mencapai akhir larik. Kode ini tidak akan bergantung pada dua larik yang memiliki kunci identik atau memiliki jenis elemen yang sama. Perulangan berakhir ketika salah satu dari dua larik selesai.
sumber
Ini berhasil untuk saya:
sumber
Anda dapat menggunakan array_merge untuk menggabungkan dua array dan kemudian mengulanginya.
sumber
Keluarkan ...
PHP 5.3+
Sebelum PHP 5.3
atau gabungkan
di pilih
demo
sumber
sumber
Alih-alih foreach loop, coba ini (hanya jika array Anda memiliki panjang yang sama).
sumber
Saya pikir Anda bisa melakukan sesuatu seperti:
$ kode = larik ('tn', 'us', 'fr');
$ names = array ('Tunisia', 'United States', 'France');
Ini juga harus bekerja untuk array asosiatif.
sumber
Saya pikir cara paling sederhana adalah menggunakan for loop dengan cara ini:
sumber
Kode Anda seperti ini salah karena foreach hanya untuk larik tunggal:
Alternatif, Ubah ini:
sumber
array_combine()
bekerja dengan sangat baik untuk saya saat menggabungkan$_POST
beberapa nilai dari beberapa masukan formulir dalam upaya untuk memperbarui jumlah produk di keranjang belanja.sumber
Sekarang Anda dapat menggunakan $ a untuk setiap array ....
sumber
Saya memecahkan masalah seperti Anda dengan cara ini:
sumber
Anda harus mencoba ini untuk menempatkan 2 array di loop foreach singlr Misalkan saya memiliki 2 Array 1. $ item_nm 2. $ item_qty
sumber
Beberapa larik juga bisa diiterasi seperti ini:
sumber
itu berhasil untuk saya
sumber