Как посчитать количество последовательных нулевых значений в массиве - PullRequest
0 голосов
/ 28 января 2020

У меня есть массив клиентов, у которого есть вложенный массив платежей.

"customer_1" => array:4 [▼
 0 => "211.79"
 1 => "206.20"
 2 => "0.00"
 3 => "0.00"
 4 => "220.90"
]

 "customer_2" => array:4 [▼
 0 => "0.00"
 1 => "0.00"
 2 => "0.00"
 3 => "0.00"
 4 => "220.90"
]

Мне нужно подсчитать для каждого клиента сумму последовательных платежей, начиная с верхней части массива, которые 0,00.

Так что мне нужно, чтобы он возвращал что-то вроде:

"customer_1" => 0
"customer_2" => 4

Я пробовал несколько циклов while и foreach, но не могу заставить его работать:

@php($count = 0)

    @foreach($array as $arr)

        @if($arr = "0.00")
            @php($count = $count + 1)
        @else
            @continue
        @endif

    @endforeach

Ответы [ 3 ]

1 голос
/ 28 января 2020

Проверьте первый элемент, если это 0.00, затем просто вычислите последовательный 0.00 или просто разбейте l oop:

$count = 0;
if ($array[0] == "0.00") {
    foreach($array as $item) {
        if($item == "0.00") {
            $count += 1;
        } else {
            break;
        }
    }
}
return $count;

Для лезвия:

@php($count = 0)

@if($arr[0] == "0.00")
@foreach($array as $arr)

   @if($arr == "0.00")
      @php($count += 1)
   @else
      @break
   @endif

@endforeach
@endif
0 голосов
/ 28 января 2020
$sum = 0;

foreach($items as $item) {
    $sum += $item;
}

echo $sum;

Попробуйте это @ dexx

0 голосов
/ 28 января 2020

вы присваиваете значение переменной внутри условия if, вам нужно сравнить «0.00» внутри условия if.

@php($count = 0)

  @foreach($array as $arr)

    @if($arr == "0.00")
        @php($count = $count + 1)
    @else
        @continue
    @endif

 @endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...