PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: написать по другому рабочий скрипт
Поиск в теме | Версия для печати
chaynyk
Отправлено: 21 Апреля, 2009 - 11:06:16
Гость
Покинул форум
Сообщений всего: 118
Дата рег-ции: Сент. 2007
Откуда: MOSCOW
Помог: 0 раз(а)
скрипт рабочий, но нужно написать его по другому, так что бы скрипт (функция alph(); ) выполнялся быстрей по времени и ел меньше ресурсов.
PHP:
скопировать код в буфер обмена
<?PHP
$value3 = "z" ;
function alph( $letter ) {
$alphabet = array ( "a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" , "i" , "j" , "k" , "l" , "m" , "n" , "o" , "p" , "q" , "r" , "s" , "t" , "u" , "v" , "w" , "x" , "y" , "z" ) ; for ( $i = 0 ; $i < count( $alphabet ) ; $i ++ ) {
if ( $letter == $alphabet [ $i ] ) {
if ( $i + 1
!== count ( $alphabet ) ) { $newname = $alphabet [ $i + 1
] ; } else { $newname = $alphabet [ 0
] . $alphabet [ 0
] ; } }
}
return $newname ;
}
$ss = alph( $value3 ) ;
echo $ss ;
?>
суть скрипта такова, есть значение $value1.$value2.$value2, где $value3 значение происходит методом подстановки из функции alph() понятно типа: после "j" идет "k" и так по нарастающий. Массив $alphabet состоит только из алфавита другие символы не нужны . Значение $value2 один ко многим $value3.
Если кто имеет достаточно, знаний в PHP, что бы корректно модернизировать скрипт, буду благодарен.
Champion
Отправлено: 21 Апреля, 2009 - 11:12:43
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008
Откуда: Москва
Помог: 57 раз(а)
Думать лень, но что увидел.
chaynyk пишет: for ($i=0; $i<count($alphabet); $i++)
Лучше заменить на
. Хотя, цикл небольшой. Особой разницы не заметишь.
Да и вообще, перебирать массив в цикле незачем. Есть функции in_array и array_search.
Stierus
Отправлено: 21 Апреля, 2009 - 11:29:38
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008
Откуда: Москваль
Помог: 52 раз(а)
PHP:
скопировать код в буфер обмена
function alph( $letter ) {
$alphabet = array ( "a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" , "i" , "j" , "k" , "l" , "m" , "n" , "o" , "p" , "q" , "r" , "s" , "t" , "u" , "v" , "w" , "x" , "y" , "z" ) ; $cnt = count ( $alphabet ) ; //можно тупо прописать $cnt = 26; /* 1-й вариант : */
/* 2-й вариант */
$alphabet_keys = array ( "a" => 0 , "b" => 1 , "c" => 2 , "d" => 3 , "e" => 4 , "f" => 5 , "g" => 6 , "h" => 7 , "i" => 8 , "j" => 9 , "k" => 10 , "l" => 11 , "m" => 12 , "n" => 13 , "o" => 14 , "p" => 15 , "q" => 16 , "r" => 17 , "s" => 18 , "t" => 19 , "u" => 20 , "v" => 21 , "w" => 22 , "x" => 23 , "y" => 24 , "z" => 25
) ; $key = $alphabet_keys [ $letter ] ;
/* в разных ситуациях разные способы могут быть быстрее, посмотри, какой из них у вас будет работать быстрее (выбери один из) */
if ( $key == $cnt - 1) {
return 'aa' ;
}
else {
return $alphabet [ $key + 1] ;
}
}
Вроде бы, точная копия твоего скрипта. Зачем такое нужно - мне непонятно, функция не универсальна(Отредактировано автором: 21 Апреля, 2009 - 11:34:27)
valenok
Отправлено: 21 Апреля, 2009 - 18:03:33
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Помог: 3 раз(а)
PHP:
скопировать код в буфер обмена
<?PHP
$aAlphabet = array ( "a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" , "i" , "j" , "k" , "l" , "m" , "n" , "o" , "p" , "q" , "r" , "s" , "t" , "u" , "v" , "w" , "x" , "y" , "z" , 'aa' ) ; (Отредактировано автором: 25 Апреля, 2009 - 00:54:46)
valenok
Отправлено: 22 Апреля, 2009 - 08:31:37
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Помог: 3 раз(а)
$aAlphabet = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",'aa');
echo $aAlphabet[array_search('z', $aAlphabet)+1]);
chaynyk
Отправлено: 24 Апреля, 2009 - 21:00:59
Гость
Покинул форум
Сообщений всего: 118
Дата рег-ции: Сент. 2007
Откуда: MOSCOW
Помог: 0 раз(а)
valenok пишет: $aAlphabet = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",'aa');
echo $aAlphabet[array_search('z', $aAlphabet)+1];
Спасибо!
Что-то как-то не пришло в голову добавить
'aa' . Скрипт работает, в три раза быстрей, в отличии от первоначальной версии.
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB