Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: синтаксис в написании цикла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: не знаю как к переменной с помощью синтаксиса присоединить номер этой переменной
yogeswar
Отправлено: 05 Ноября, 2012 - 06:13:37
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




У меня чнтыре цикла

foreach ($arr1 as $ka => $value)
{
$wasy[] = $value;
}

foreach ($arr2 as $ka => $value)
{
$wasy[] = $value;
}

foreach ($arr3 as $ka => $value)
{
$wasy[] = $value;
}

foreach ($arr4 as $ka => $value)
{
$wasy[] = $value;
}

Сразу возникает желание их объединить. Я пробую так

for($j=0; $j<4; $j++)
{
foreach ($arr[$j] as $ka => $value)
{
$wasy[] = $value;
}
}

Из за синтаксиса возникает ошибка.
Как сделать правильно? Заранее благодарю.
 
 Top
AlexAnder
Отправлено: 05 Ноября, 2012 - 06:40:25
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




Спойлер (Отобразить)
Однако

(Отредактировано автором: 05 Ноября, 2012 - 09:07:56)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
yogeswar
Отправлено: 05 Ноября, 2012 - 08:12:02
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Большое спасибо AlexAnder, у меня все работает.
Странная все-таки штука - синтаксис. Я попробовал ваше присоединение к переменной '$arr'.$i ($str = '$arr'.$i;) роименить к своему цыклу:
for($j=0; $j<4; $j++)
{
foreach ('$arr'.$j as $ka => $value)
{
$wasy[] = $value;
}
}
Возникает ошибка. Потом, у вас есть вспомогательная функция printr.
У меня к вам еще такие вопросы дилетанта:
1. Можно ли сделать то же самое без функции (попроще).
2. Я нигде(?) не мог найти перевода из двумерного массива в одномерный (в двумерный - сколко угодно статей)
Если что - извините. Слишком дилетант наседает на профессионала.
 
 Top
AlexAnder
Отправлено: 05 Ноября, 2012 - 08:19:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




yogeswar пишет:
Спойлер (Отобразить)

1. Можно ли сделать то же самое без функции (попроще).
2. Я нигде(?) не мог найти перевода из двумерного массива в одномерный (в двумерный - сколко угодно статей)
Если что - извините. Слишком дилетант наседает на профессионала.

Спойлер (Отобразить)


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
yogeswar
Отправлено: 05 Ноября, 2012 - 08:54:43
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Этот цикл тоже работает. Спасибо AlexAnder. Странно что я не встречал где эти приемы с синтаксисом описаны.
Наверное вы легко ответите на второй мой вопрос.
 
 Top
sweb
Отправлено: 05 Ноября, 2012 - 10:46:06
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




...

(Отредактировано автором: 05 Ноября, 2012 - 10:46:55)

 
 Top
yogeswar
Отправлено: 05 Ноября, 2012 - 14:52:50
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




sweb по-моему сделал максимум усилий, чтобы его не поняли
 
 Top
armancho7777777 Супермодератор
Отправлено: 05 Ноября, 2012 - 15:37:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




yogeswar, палагаю, вы пытаетесь соеденить 4 массива в один ?
(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2. for($j=0; $j<4; $j++)
  3.  {
  4.  foreach ($arr{$j} as $ka => $value)
  5.  {
  6.  $wasy[] = $value;
  7.  }
  8.  }
  9.  

Но есть лучший способ, - встроенная функция array_merge()
PHP:
скопировать код в буфер обмена
  1.  
  2. $wasy = array_merge($arr1, $arr2, $arr3, $arr4);
  3.  
 
 Top
yogeswar
Отправлено: 05 Ноября, 2012 - 16:51:24
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Спасибо armancho7777777. Сейчас обязательно попробую.
(Добавление)
armancho7777777
Я нигде(?) не мог найти перевода из двумерного массива в одномерный (в двумерный - сколко угодно статей).
Поможете мне?
(Добавление)
armancho7777777
Ваша функция array_merge прекрасно работает.
Как насчет моего предвдущего вопроса?
 
 Top
armancho7777777 Супермодератор
Отправлено: 05 Ноября, 2012 - 18:12:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




yogeswar пишет:
не мог найти перевода из двумерного массива в одномерный

PHP:
скопировать код в буфер обмена
  1. $arr = array(array(1,2,3), array(3,4,5), array(6,7,8));
  2.  
  3. $newArr = call_user_func_array('array_merge', $arr);
  4.        
  5. print_r($newArr);


Если не уверены в том, что все элементы являются массивами, то:
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array(array(1,2,3), array(3,4,5), 6, 7);
  3.  
  4. $arr = array_map(
  5.                    function($val)
  6.                    {
  7.                            if(!is_array($val))
  8.                            return array($val);
  9.                            return $val;
  10.                    },
  11.                    $arr
  12.            );
  13.  
  14. $newArr = call_user_func_array('array_merge', $arr);
  15.        
  16. print_r($newArr);        
  17.  

(Отредактировано автором: 05 Ноября, 2012 - 18:17:24)

 
 Top
yogeswar
Отправлено: 06 Ноября, 2012 - 05:24:49
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Спасибо большое armancho7777777.
 
 Top
armancho7777777 Супермодератор
Отправлено: 06 Ноября, 2012 - 06:04:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




На здоровье.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB