PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Суммирование в цикле до определенного значения
Поиск в теме | Версия для печати
Строитель
Отправлено: 22 Января, 2017 - 17:59:18
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014
Откуда: Украина
Помог: 73 раз(а)
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 ;
}
Код мне не нравится, но сперва надо выяснить, так ли он работает? Если да, то его можно будет допилить.
Строитель
Отправлено: 23 Января, 2017 - 23:04:05
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014
Откуда: Украина
Помог: 73 раз(а)
Stibaslo , вот этот вариант вроде бы корректно вычисляет значение $m
PHP:
скопировать код в буфер обмена
<?PHP
$a = [
[ 0. 5, 0. 5, 0. 5, 0. 5] ,
[ 0. 5, 0. 5, 0. 5, 0. 5] ,
[ 0. 5, 0. 5, 0. 5, 0. 5] ,
[ 0. 5, 0. 5, 0. 5, 0. 5] ,
[ 0. 5, 0. 5, 0. 5, 0. 5] ,
[ 0. 5, 0. 5, 0. 5, 0. 5] ,
[ 0. 5, 0. 5, 0. 5, 0. 5]
] ;
echo bypassArr( $a ) ; // 14
function bypassArr( $a , $out = 0) {
foreach ( $a as $i ) {
$out = counter( $i ) ;
}
return $out ;
}
function counter( & $a ) {
static $s , $m ;
if ( $s >= 1) {
$s -= 1 ;
$m ++;
}
return ( ! empty ( $a ) ? counter
( $a ) : $m ) ; }
Поиск в теме | Версия для печати
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB