PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (106): В начало « ... 75 76 77 78 [79] 80 81 82 83 ... » В конец
Найдено сообщений: 1580
Строитель
Отправлено: 22 Января, 2017 - 17:59:18 • Тема: Циклы и массивы • Форум: Вопросы новичков
Ответов: 16 Просмотров: 897
Stibaslo пишет: Во втором варианте сложнее (для меня) шесть массивов вложить. Буду пробовать!
Там во второй функции надо сделать изменения - вместо двух массивов дописать обработку для шести. Сейчас допишу.
(Добавление)
Stibaslo , исправил для шести массивов Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$arr_1 = [ 0. 2, 0. 5, 0. 6, 0. 8, 0. 7] ;
$arr_2 = [ 0. 3, 0. 2, 0. 1, 0. 3, 0. 7] ;
$arr_3 = [ 0. 3, 0. 2, 0. 1, 0. 3, 0. 7] ;
$arr_4 = [ 0. 3, 0. 2, 0. 1, 0. 3, 0. 7] ;
$arr_5 = [ 0. 3, 0. 2, 0. 1, 0. 3, 0. 7] ;
$arr_6 = [ 0. 3, 0. 2, 0. 1, 0. 3, 0. 7] ;
echo '<pre>' ;
var_dump ( bar
( $arr_1 , $arr_2 , $arr_3 , $arr_4 , $arr_5 , $arr_6 ) ) ; echo '</pre>' ;
function foo( & $arr ) {
static $sum ;
$sum += $item ;
if ( $sum < 1) {
return foo( $arr ) ;
}
return $sum ;
}
function bar( $arr_1 , $arr_2 , $arr_3 , $arr_4 , $arr_5 , $arr_6 ) {
static $m ;
if ( foo( $arr_1 ) >= 1 && foo( $arr_2 ) >= 1 && foo( $arr_3 ) >= 1 &&
foo( $arr_4 ) >= 1 && foo( $arr_5 ) >= 1 && foo( $arr_6 ) >= 1)
{
$m ++;
}
{
return bar( $arr_1 , $arr_2 , $arr_3 , $arr_4 , $arr_5 , $arr_6 ) ;
}
return $m ;
}
Код мне не нравится, но сперва надо выяснить, так ли он работает? Если да, то его можно будет допилить.
Строитель
Отправлено: 22 Января, 2017 - 17:53:37 • Тема: Циклы и массивы • Форум: Вопросы новичков
Ответов: 16 Просмотров: 897
Stibaslo пишет: Не могу допереть просто как проверить, кончились элементы в массиве или нет
Ну, я во втором варианте (с двумя рекурсивными функциями) реализовал проверку массивов на наличие элементов. Но тот вариант вам тоже не подошёл?
Строитель
Отправлено: 22 Января, 2017 - 17:49:53 • Тема: Ассоциативный массив • Форум: Вопросы новичков
Ответов: 5 Просмотров: 322
federal_kaz , вариант с циклом for тоже будет работать, если его записать таким образом но foreach удобнее.
Строитель
Отправлено: 22 Января, 2017 - 17:22:12 • Тема: Ассоциативный массив • Форум: Вопросы новичков
Ответов: 5 Просмотров: 322
federal_kaz пишет: И где я косячу? В выводе или в некорректном формировании массива?
В выводе. Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$bmw = [
[
'model' => 'X5' ,
'speed' => 150 ,
'doors' => 5 ,
'year' => 2015 ,
] ,
[
'model' => 'Z4' ,
'speed' => 200 ,
'doors' => 3 ,
'year' => 2016,
] ,
] ;
foreach ( $bmw as $arr ) {
echo $arr [ 'model' ] . ' - ' . $arr [ 'speed' ] . ' - ' .
$arr [ 'doors' ] . ' - ' . $arr [ 'year' ] . '<br />' ;
}
Строитель
Отправлено: 22 Января, 2017 - 17:00:21 • Тема: bb редактор. Нужна помощь! • Форум: Регулярные выражения
Ответов: 6 Просмотров: 564
Andruxa пишет: Главный вопрос как вместо "ссылка" вставить нужный текст ?
Посмотрите на мой пример из предыдущего поста - там preg_replace() выполняет подстановку найденных совпадений по подмаскам, символы $1 и $2 - это ссылки на подмаски. Почитайте в мануале про preg_replace().
Строитель
Отправлено: 22 Января, 2017 - 16:27:53 • Тема: bb редактор. Нужна помощь! • Форум: Регулярные выражения
Ответов: 6 Просмотров: 564
Andruxa пишет: с переводом простых тегов это понятно, меня интересует перевод ссылок, цвет текста и цитата.
Точно так же, как и простые теги. Если нужен конкретный пример, напишите что конкретно на что у вас не получается заменить.
(Добавление)
Andruxa , ссылки например
Строитель
Отправлено: 22 Января, 2017 - 15:48:46 • Тема: Циклы и массивы • Форум: Вопросы новичков
Ответов: 16 Просмотров: 897
Stibaslo пишет: результат расчета для этих данных - 3 выдает?
Stibaslo , да, результат равен 3. Прокомментировал предыдущий код Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$arr_1 = [ 0. 2, 0. 5, 0. 6, 0. 8, 0. 7] ;
$arr_2 = [ 0. 3, 0. 2, 0. 1, 0. 3, 0. 7] ;
echo '<pre>' ; var_dump ( bar
( $arr_1 , $arr_2 ) ) ; echo '</pre>' ;
function foo( & $arr ) {
static $sum ;
// Извлечь первый элемент из массива
// И сохранить его значение
$sum += $item ;
// Если значение переменой $sum меньше 1
if ( $sum < 1 ) {
// Повторить извлечение следующего элемента
// с последующим его сохранением (рекурсия)
return foo( $arr ) ;
}
return $sum ;
}
function bar( $arr_1 , $arr_2 ) {
static $m ;
// Если значение foo($arr_1) больше 1,
// и если значение foo($arr_2) больше 1
// увеличиваем на единицу переменную $m
foo( $arr_1 ) < 1 && foo( $arr_2 ) < 1 ?: $m ++;
// Если в массивах $arr_1 и $arr_2 остались значения,
// повторяем увеличение (если условия соответствуют) счётчика $m
return bar( $arr_1 , $arr_2 ) ;
}
return $m ;
}
Stibaslo пишет: С предыдущим вариантом нельзя добавить реализацию такого варианта:
Думаю можно. Попробую, и позже отпишусь.
(Добавление)
Stibaslo пишет: При повторном исполнении 2-го варианта выскакивает ошибка - Cannot redeclare foo() (previously declared in D:\......., как поправить?
Вы наверное описание функции прописали в тело цикла?
(Добавление)
Stibaslo , и ещё для ясности напишите мне, какое должно быть значение в переменной $m при таких значениях массивов:
$arr_1 = [0.2, 0.5, 0.6, 0.8, 0.7]; // 2.8
$arr_2 = [0.3, 0.2, 0.1, 0.3, 0.7]; // 1.6
Страниц (106): В начало « ... 75 76 77 78 [79] 80 81 82 83 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB