У меня есть массив значений, и мне нужно их подсчитать, но только до тех пор, пока не достигнет суммы $ target. Мне нужно знать, сколько ключей массива требуется для достижения цели ($ count) и суммы этих соответствующих значений ($ total). Вот массив Я использую:php - Как подсчитать значения массива и ключи до достижения цели
$numbers = Array ([0] => 1 [1] => 1 [2] => 1 [3] => 1 [4] => 6 [5] => 1 [6] => 5.5 [7] => 1 [8] => 1 [9] => 1 [10] => 1 [11] => 1 [12] => 1 [13] => 11)
С $target=9
в $total
должно быть 10 и $ Количество должно быть 5, но я получаю $total=9
и $count=9
как код, кажется, считать ключи, а не значений , Аналогично, если целью было 12, то $total
должно быть 16,5, а $count
должно быть 7, но я получаю 12 и 12.
Надеюсь, что все это имеет смысл. Если кто-то может отредактировать этот код, чтобы он работал для любого массива чисел и любой цели, он был бы весьма признателен.
$count=0;
$target=9;
$total=0;
foreach($numbers as $key => $value){
while($total < $target) {
$total = $total+$value;
$count++;
}
}
echo "total is $total and count is $count";
Что такое '$ outgoing'? Почему у вас есть 'while' внутри вашего' foreach'? –
Возможно, вы хотите использовать '$ target' вместо' $ outgoing' –
отредактировал ошибку, чтобы сказать $ target, а не $ outgoing – user1961653