Я хочу создать, selectbox
используя два массива, один из которых содержит коды стран, а другой - названия стран.
Это пример:
<?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>';
}
?>
Этот метод у меня не сработал. Какие-либо предложения?
foreach
одновременно работает только с одним массивом.Так как ваш массив структурирован, вы можете
array_combine()
превратить их в массив пар ключ-значение, а затем вforeach
этот единственный массив:Или, как видно из других ответов, вместо этого вы можете жестко закодировать ассоциативный массив.
источник
Используйте
array_combine()
для объединения массивов вместе и перебора результата.источник
Используйте ассоциативный массив:
Я считаю, что использование ассоциативного массива является наиболее разумным подходом в отличие от использования,
array_combine()
потому что, если у вас есть ассоциативный массив, вы можете просто использоватьarray_keys()
илиarray_values()
получить точно такой же массив, который у вас был раньше.источник
array_combine()
уже создает ассоциативный массив, возможно, вы захотите более четко инициализировать его как ассоциативный.array_map тоже подходит для этого
Другие преимущества:
Если один массив короче другого, обратный вызов получает
null
значения, чтобы заполнить пробел.Вы можете использовать более двух массивов для итерации.
источник
Почему бы просто не объединить в
многомерныйассоциативный массив? Похоже, вы ошибаетесь:становится:
источник
Все полностью протестировано
3 способа создать динамический раскрывающийся список из массива.
Это создаст раскрывающееся меню из массива и автоматически присвоит ему соответствующее значение.
Метод №1 (нормальный массив)
Метод # 2 (нормальный массив)
Метод № 3 (ассоциативный массив)
источник
foreach работает только с одним массивом. Чтобы пройти через несколько массивов, лучше использовать функцию each () в цикле while:
each () возвращает информацию о текущем ключе и значении массива и увеличивает внутренний указатель на единицу или возвращает false, если он достиг конца массива. Этот код не будет зависеть от двух массивов, имеющих одинаковые ключи или одинаковых элементов. Цикл завершается, когда заканчивается один из двух массивов.
источник
Это сработало для меня:
источник
Вы можете использовать array_merge, чтобы объединить два массива, а затем перебрать их.
источник
Выходи ...
PHP 5.3+
До PHP 5.3
или объединить
в избранном
демо
источник
источник
Вместо цикла foreach попробуйте это (только если ваши массивы имеют одинаковую длину).
источник
Я думаю, что можно сделать что-то вроде:
$ коды = массив ('tn', 'us', 'fr');
$ names = array ('Тунис', 'США', 'Франция');
Это также должно работать для ассоциативных массивов.
источник
Я думаю, что самый простой способ - просто использовать цикл for следующим образом:
источник
Ваш код, подобный этому, неверен, поскольку foreach только для одного массива:
Альтернатива, измените на это:
источник
array_combine()
отлично работал у меня при объединении$_POST
нескольких значений из нескольких входных данных формы в попытке обновить количество продуктов в корзине покупок.источник
Теперь вы можете использовать $ a для каждого массива ....
источник
Я решил такую проблему, как ваша:
источник
Вы должны попробовать это для помещения 2 массивов в цикл singlr foreach. Предположим, у меня есть 2 массива 1. $ item_nm 2. $ item_qty
источник
Некоторые массивы также можно повторять следующим образом:
источник
меня устраивает
источник