Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вложенные циклы
 
 автор: Jenshina   (26.07.2010 в 22:30)   письмо автору
 
 

Доброго времени суток.

Есть два массива

$a=array(1,2,3);

$b=array(a,b,c);

Помогите понять, как именно вложить циклы (или проще что есть?), чтобы в конце вывелось так:

1 - a
2 - b
3 - c

Заранее спасибо!

  Ответить  
 
 автор: sim5   (27.07.2010 в 01:50)   письмо автору
 
   для: Jenshina   (26.07.2010 в 22:30)
 

<?
$a 
= array(123);
$b = array('a''b''c');
$c array_combine($a$b);
print_r($c);

Только чтоже вы в задачи то поместили вопрос, это не задача, это в мануал достаточно заглянуть. )

  Ответить  
 
 автор: Valick   (27.07.2010 в 01:55)   письмо автору
 
   для: sim5   (27.07.2010 в 01:50)
 

гы :) *ушел спать*
___
Ваш ответ лучше моего, а ответ Трианона вообще правильный...
я никчемный человек :-(

  Ответить  
 
 автор: sim5   (27.07.2010 в 02:10)   письмо автору
 
   для: Valick   (27.07.2010 в 01:55)
 

Я не знаю, что правильно для автора, но если надо скомбинировать массивы, то array_combine, а если нужна зарядка для мозгов, то тут могут быть вариации. :)

PS. Дошло о "правильности" :) Ну тогда так:
<?
$a 
= array(123); 
$b = array('a''b''c'); 
$c array_map(null$a$b);
array_walk($ccreate_function('&$v','echo implode(" - ", $v)."<br>";'));

  Ответить  
 
 автор: Valick   (27.07.2010 в 01:54)   письмо автору
 
   для: Jenshina   (26.07.2010 в 22:30)
 

<?php
foreach($a as $key=>$value){
$c[$value]=$b[$key];
}

Вопросы подобного рода задавайте в разделе по РНР, это раздел предназначен для другого.

  Ответить  
 
 автор: Trianon   (27.07.2010 в 01:55)   письмо автору
 
   для: Jenshina   (26.07.2010 в 22:30)
 

for($k = 0; $k < count($a); $k++)
  echo $a[$k] . ' - ' . $b[$k];


foreach($a as $k >= $v)
  echo $v . ' - ' . $b[$k];

  Ответить  
 
 автор: sms-send   (27.07.2010 в 07:00)   письмо автору
 
   для: Jenshina   (26.07.2010 в 22:30)
 

Если вопрос в том, как обойти синхронно оба массива, то считаю более правильным вариант с общим индексом для 2ух массивов в цикле for (первый вариант Trianon'а). Тут можно легко задать нужное количество итераций на случай, если длины массивов могут быть не равны:
1) $len = count($a);
2) $len = count($b);
3) $len = min(count($a), count($b));
4) $len = max(count($a), count($b));
for($k=0; $k<$len; $k++)


Удел foreach($arr as $key=>$val) - всё-таки ассоциативные и дыряво-индексированные массивы, тем более сама конструкция подразумевает обход одного массива.
Ну а получать какой то третий массив-комбинацию, это уже совсем лишнее.. задача слишком проста, чтобы в ней что то нагромождать

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования