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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: foreach

Сообщения:  [1-10]   [11-16] 

 
 автор: cheops   (12.04.2007 в 14:07)   письмо автору
 
   для: SnooPI   (11.04.2007 в 18:57)
 

Данный тип цикла позволяет обходить ассоциативные массивы... Когда вы работаете с неассоциативным массивом вы заранее знаете, что индексы массива пробегают значения от 0 до N - 1, где N - количество элементов в массиве. Когда вы работаете с ассоциативным массивом, вы заранее не знаете как называется ключ. При помощи foreach вы последовательно можете перебирать элементы массива, получая пары ключ=значение.

   
 
 автор: ШИМ   (12.04.2007 в 00:35)   письмо автору
 
   для: SnooPI   (12.04.2007 в 00:08)
 

Ну ВПРИНЦИПЕ Да!
ПросТО так как у тебя не сделаеш, если не знаеш ключей, и много приймуществ

   
 
 автор: SnooPI   (12.04.2007 в 00:08)   письмо автору
 
   для: ШИМ   (11.04.2007 в 23:59)
 

Т.е. если без фореач, то он как бы вставит вот такое:
id[0], name[0],$valu[0]
id[1], name[1],$valu[1]
id[2], name[2],$valu[2]
и т.д.
Т.е. мы сократили код ?

   
 
 автор: ШИМ   (11.04.2007 в 23:59)   письмо автору
 
   для: SnooPI   (11.04.2007 в 23:44)
 

ПривеДу тебе простой пример:
У меня есть чекБОКс, мнОГо чекБОксоВ!!!
оТмЕченныЕ ЗаполНяЮт Массив данными!!!
например $book! - это массив
дальше мне нужно загнать его в БД
структура:


id | name | book


так сразу как ты массив загонеш в ЗАПРОС


INSERT INTO table values(NULL,name,$book);

так не правильно!!!! ОШибКа
Нужно перебрать массив по елементам, и каждый уже елемент заганять в таблицу:


foreach($book as $value)
{
   mysql_query("INSERT INTO talbe values (NULL,name,$value) ");
}


Вставляется id, name, и поочередно все елементы массива, до его конца!!!
РАЗОБРАЛСЯ???

   
 
 автор: bronenos   (11.04.2007 в 23:56)   письмо автору
 
   для: SnooPI   (11.04.2007 в 23:24)
 

это для упрощения сделано все
вот сравни это и посуди что проще
<?
$students 
= array (
  
/* ученики */
);

/*
надо занести в базу каждого студента и отправить сообщение на почту об успешной сдаче экзамена
*/

/* стандартный for */
for ($i=0$i<count($students); $i++)
{
  
mysql_query ("insert into students set name='{$students[$i]['name']}', surname='{$students[$i]['surname']}', ...");
  
mail ($students[$i]['email'], 'Вы зачислены''Поздравляем с успешной сдачей экзаменов!');
}

/* и через foreach */
foreach ($students as $s)
{
  
mysql_query ("insert into students set name='$s[name]', surname='$s[surname]', ...");
  
mail ($s['email'], 'Вы зачислены''Поздравляем с успешной сдачей экзаменов!');
}
?>

   
 
 автор: SnooPI   (11.04.2007 в 23:44)   письмо автору
 
   для: SnooPI   (11.04.2007 в 18:57)
 

Вроде понял, потестил на локалхосте...
Но не пойму, разве где-то нужно выводить все что находиться в массиве?

   
 
 автор: ШИМ   (11.04.2007 в 23:30)   письмо автору
 
   для: SnooPI   (11.04.2007 в 23:24)
 

а ты пробовал, так выводить, попробуй!

echo $massive

должно вывести


array


в цикле можно допустим проверять какенидь условие

foreach($array as $element)
{
if($element>5)
echo $element;
}
к примеру!
Или ты допустим захочеш еще какиЕ нибудь модификации этого массива сделать, что Угодно, КРУТИ, ВЕРТИ ЕЛЕМЕНТЫ, ПРОВЕРЯЙ, ПИХАЙ ИХ КУДА ХОЧЕШ, ИСПОЛЬЗУЙ

   
 
 автор: SnooPI   (11.04.2007 в 23:24)   письмо автору
 
   для: SnooPI   (11.04.2007 в 18:57)
 

Блин......я не вот не пойму....
зачем вообще нужна эта функция.....если её перевести, то будет так?
foreach($массив как $переменная)
echo $переменная;
Какая разница что мы будем выводить??
Зачем эта функция??
Разве нельзя задавать...
Ведь можно просто echo $массив

Ну вот
foreach($array as $element)
{
echo " $element";
}
Зачем это делать????Ведь можно просто написать echo $array

foreach($array as $key->$element)
{
echo "ключ - $key, елемент -$element";
}

Что за ключ?Ну блин...не понимаю я

   
 
 автор: Trianon   (11.04.2007 в 20:21)   письмо автору
 
   для: Саня   (11.04.2007 в 20:17)
 

Вы - нет. Но в указанной Вами теме cheops акцентировал внимание на различии. Хотя всущности его нет... В php любой массив - ассоциативный. Так что сказать 'только' или не сказать... :)

   
 
 автор: Саня   (11.04.2007 в 20:17)   письмо автору
 
   для: Trianon   (11.04.2007 в 19:58)
 

Ну я же не сказал только ассоциативные массивы.

   

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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