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 slice

 PHP.SU

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


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

> Без описания
9xakep
Отправлено: 24 Апреля, 2012 - 20:32:29
Post Id


Новичок


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


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




В общем до этого работал только с javascript, понадобилось написать на php, сделал так: написал на js, а потом перевести в php:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $m = array(1,2,3,4,5,6,7,8,9,0)
  3. $done = array_slice($m, 0);
  4.  
  5.  
  6.   function resort($arr1) {
  7.    $did = array();
  8.  
  9.     sort1()
  10.  
  11.     function sort1() {
  12.       $i = 0;
  13.       do {
  14.  
  15.         $r1 = rand(0, $arr1.length)
  16.         $r2 = rand(0, $arr1.length)
  17.         $m1 = $arr1[$r1]
  18.         $m2 = $arr1[$r2]
  19.         $arr1[$r1] = $m2
  20.         $arr1[$r2] = $m1
  21.         array_push($did, $r1)
  22.         array_push($did, $r2)
  23.         $i += 2
  24.  
  25.       } while ($i < $arr1.length)
  26.     }
  27.   }
  28.  
  29.  
  30.   function doCheck($arr3, $arr4) {
  31.     $repeat = 0;
  32.     $max_repeat = floor($arr4.length * 0.75)
  33.     for ($i = 0; $i < $arr3.length; $i++) {
  34.       for ($k = 0; $k < $arr4.length; $k++) {
  35.         if ($arr3[$i] == $arr4[$k]) {
  36.           ++$repeat
  37.           break;
  38.         } else continue;
  39.       }
  40.     }
  41.     if ($repeat >= $max_repeat) {
  42.       resort($arr3)
  43.     }
  44.   }
  45.   resort($m)
  46.   doCheck($m, $done)
  47.   echo $m
  48.   echo $done
  49. ?>

Если есть ошибки в синтаксисе, тыкните пальцем Огорчение Сервер говорит, что ошибка в 3 строке, что там не так?
 
 Top
Данил_123
Отправлено: 24 Апреля, 2012 - 20:42:29
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


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






-----
http://mysitecost.ru
 
 Top
Мелкий Супермодератор
Отправлено: 24 Апреля, 2012 - 20:43:15
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Точка с запятой обязательны в конце строки.


-----
PostgreSQL DBA
 
 Top
9xakep
Отправлено: 24 Апреля, 2012 - 20:46:11
Post Id


Новичок


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


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




МелкийДанил_123 Спасибо, теперь ошибка на 9ой строке, что не так с вызывом функции?
 
 Top
Данил_123
Отправлено: 24 Апреля, 2012 - 20:46:50
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


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




вроде та же ошибка
(Добавление)
а хотя, вызов функции до ее объявления?


-----
http://mysitecost.ru
 
 Top
9xakep
Отправлено: 24 Апреля, 2012 - 20:51:53
Post Id


Новичок


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


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




Данил_123,да, до ее объявления, в php так нельзя?
 
 Top
Данил_123
Отправлено: 24 Апреля, 2012 - 20:53:52
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


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




точно не помню, точку с запятой поставте, проверим
(Добавление)


-----
http://mysitecost.ru
 
 Top
OrmaJever Модератор
Отправлено: 24 Апреля, 2012 - 21:05:08
Post Id



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


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


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




Мелкий пишет:
Точка с запятой обязательны в конце строки.

(Добавление)
9xakep пишет:
$arr1.length

Закатив глазки



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 24 Апреля, 2012 - 21:10:27
Post Id



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


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


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




OrmaJever пишет:
count
или sizeof
(Добавление)
9xakep пишет:
$arr1, $arr2, $arr3, $arr4...
Это лишнее, в php "внутренности" ф-ции не видны из глобальной области (как и в js),
но и глобальные данные не видны внутри ф-ций (в отличии от js),
пока не напишешь явно волшебное слово global. Закатив глазки
 
 Top
9xakep
Отправлено: 24 Апреля, 2012 - 21:45:48
Post Id


Новичок


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


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




DeepVarvar, извиняюсь конечно, но какой же муда**ский это php... А?! ... Я правильно понимаю, что не обязательно каждый раз писать: $? Или что это вообще, зачем он нужен мне?

(Отредактировано автором: 24 Апреля, 2012 - 21:47:14)

 
 Top
OrmaJever Модератор
Отправлено: 24 Апреля, 2012 - 22:10:39
Post Id



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


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


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




9xakep идея переводить js код в php изначально не правельная. Вам надо прочитать хотя бы синтаксис. Да, php очень похож на js, но в тоже время они очень разные.
Насчёт '$' то каждая переменая начинается с символа '$', вы не правельно наверно поняли, DeepVarvar написал про область видимости, в php локальная область не видит глобальную, тоесть в функции не видно переменые из "вне". Для того что бы получить глобальные переменые внутри функции нужно либо передавать их параметроами либо писать в функции

Но вариант с global не советую.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 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