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
Форумы портала PHP.SU :: Версия для печати :: Поиск нуля
Форумы портала PHP.SU » PHP » Программирование на PHP » Поиск нуля

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

1. asql - 29 Марта, 2011 - 22:45:38 - перейти к сообщению
Значит при поиске по кейсам символа '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.  

Если ноль убираю с массива, то все как по маслу!
как его (ноль) можно убить, что б не сопротивлялся?
заранее спс
2. gheka - 29 Марта, 2011 - 22:56:48 - перейти к сообщению
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.  
3. OrmaJever - 29 Марта, 2011 - 23:03:22 - перейти к сообщению
asql а по людски написать условие нельзя?

берётся значение $array[0][$i] и если оно == true то цыкл продолжатся, но 0 == false
Поэтому нужно написать хотябы так
PHP:
скопировать код в буфер обмена
  1. for($i=0;$array[0][$i] !== false;$i++){
4. DeepVarvar - 29 Марта, 2011 - 23:15:56 - перейти к сообщению
OrmaJever пишет:
хотябы так

Или так:
PHP:
скопировать код в буфер обмена
  1. foreach ($array as $val) if ($val > 0) break;
5. asql - 30 Марта, 2011 - 00:55:09 - перейти к сообщению
OrmaJever пишет:
asql а по людски написать условие нельзя?
PHP:
скопировать код в буфер обмена
for($i=0;$array[0][$i];$i++){


Приколист
6. OrmaJever - 30 Марта, 2011 - 01:10:59 - перейти к сообщению
asql пишет:
Приколист

Обоснуй.Что я сказал не так? Однако
7. asql - 30 Марта, 2011 - 01:45:16 - перейти к сообщению
какая тут разница?)
$array[0][$i] !== false
$array[0][$i] != false
$array[0][$i] == true
$array[0][$i]

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

Кстати я нашел решение, но не скажу так как секрет фирмы=)
8. gheka - 30 Марта, 2011 - 15:05:49 - перейти к сообщению
asql пишет:
Кстати я нашел решение, но не скажу так как секрет фирмы=)


Ну и Флаг тебе в руки! Хорошо
Ты сюда спрашивать пришёл, а не у тебя. О стольные по своему такую проблему решают.
9. ams - 30 Марта, 2011 - 15:53:46 - перейти к сообщению
asql пишет:
Кстати я нашел решение, но не скажу так как секрет фирмы=)

Это lol
10. OrmaJever - 30 Марта, 2011 - 16:06:49 - перейти к сообщению
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])
11. Viper - 30 Марта, 2011 - 16:08:48 - перейти к сообщению
asql а мозг включить и узнать что 0 и "0" разные типы не судьба?

 

Powered by ExBB FM 1.0 RC1