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]   

> Описание: switch case
asql
Отправлено: 29 Марта, 2011 - 22:45:38
Post Id



Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Апр. 2010  


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




Значит при поиске по кейсам символа '0', поиск обрывается...
Поиск происходит по следующей схеме
PHP:
скопировать код в буфер обмена
  1.  
  2. $array[0]=array(1,2,1,1,2,2,2,2,0,1,1,1);
  3. for($i=0;$array[0][$i];$i++){
  4.   switch ($array[0][$i]) {
  5.      case "0":$result.='...';break;
  6.      case "1":$result.='...';break;
  7.      case "2":$result.='...';break;
  8.   }
  9. }
  10.  

Если ноль убираю с массива, то все как по маслу!
как его (ноль) можно убить, что б не сопротивлялся?
заранее спс

(Отредактировано автором: 29 Марта, 2011 - 22:49:08)

 
 Top
gheka
Отправлено: 29 Марта, 2011 - 22:56:48
Post Id



Частый гость


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


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




asql


Чтобы не было остановки после 0 уберите BREAK у case со значением 0.

PHP:
скопировать код в буфер обмена
  1.  
  2. $array[0]=array(1,2,1,1,2,2,2,2,0,1,1,1);
  3. for($i=0;$array[0][$i];$i++){
  4.   switch ($array[0][$i]) {
  5.      case "0":$result.='...';
  6.      case "1":$result.='...';break;
  7.      case "2":$result.='...';break;
  8.   }
  9. }
  10.  
 
 Top
OrmaJever Модератор
Отправлено: 29 Марта, 2011 - 23:03:22
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




asql а по людски написать условие нельзя?

берётся значение $array[0][$i] и если оно == true то цыкл продолжатся, но 0 == false
Поэтому нужно написать хотябы так
PHP:
скопировать код в буфер обмена
  1. for($i=0;$array[0][$i] !== false;$i++){

(Отредактировано автором: 29 Марта, 2011 - 23:03:51)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Марта, 2011 - 23:15:56
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




OrmaJever пишет:
хотябы так

Или так:
PHP:
скопировать код в буфер обмена
  1. foreach ($array as $val) if ($val > 0) break;
 
 Top
asql
Отправлено: 30 Марта, 2011 - 00:55:09
Post Id



Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Апр. 2010  


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




OrmaJever пишет:
asql а по людски написать условие нельзя?
PHP:
скопировать код в буфер обмена
for($i=0;$array[0][$i];$i++){


Приколист
 
 Top
OrmaJever Модератор
Отправлено: 30 Марта, 2011 - 01:10:59
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




asql пишет:
Приколист

Обоснуй.Что я сказал не так? Однако


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
asql
Отправлено: 30 Марта, 2011 - 01:45:16
Post Id



Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Апр. 2010  


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




какая тут разница?)
$array[0][$i] !== false
$array[0][$i] != false
$array[0][$i] == true
$array[0][$i]

можно даже так $array[0][$i] === true

Кстати я нашел решение, но не скажу так как секрет фирмы=)

(Отредактировано автором: 30 Марта, 2011 - 01:50:02)

 
 Top
gheka
Отправлено: 30 Марта, 2011 - 15:05:49
Post Id



Частый гость


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


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




asql пишет:
Кстати я нашел решение, но не скажу так как секрет фирмы=)


Ну и Флаг тебе в руки! Хорошо
Ты сюда спрашивать пришёл, а не у тебя. О стольные по своему такую проблему решают.
 
 Top
ams
Отправлено: 30 Марта, 2011 - 15:53:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010  


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




asql пишет:
Кстати я нашел решение, но не скажу так как секрет фирмы=)

Это lol
 
 Top
OrmaJever Модератор
Отправлено: 30 Марта, 2011 - 16:06:49
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




asql пишет:
какая тут разница?)
$array[0][$i] !== false
$array[0][$i] != false
$array[0][$i] == true
$array[0][$i]

можно даже так $array[0][$i] === true

Это все абсолютно разные выражения. Те кто знают разницу такие темы не создают.
Кстате с false не прокатит либо
$array[0][$i] !== null
либо
isset($array[0][$i])


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Viper
Отправлено: 30 Марта, 2011 - 16:08:48
Post Id



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


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


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




asql а мозг включить и узнать что 0 и "0" разные типы не судьба?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB