PHP: <?php include(file.txt); $arr = explode("|", $count); $summ = 0; for($f = 4; $f <= 14; $f++) { $summ = $summ + $arr[$f]; } echo $summ; ?>
А как если у вас будет задание не инклудить файл а открыть его считать и просуммировать содержимое с проверкой на целочисленное значение. Странно както инклудить контент.Может я чего то не понимаю :?: :arrow:
НУ вы парни развели здеь дикуссию совсем не по теме. Люди же помогли и чень оперативно, за что я им оч благодарен. Одна голова хорошо, а форум лучше. И потом яша рулит, прото предмет специфичекий, а php это не сканворд.
:lol: Ну вот я снова к вам! Теперь хочу чтобы можно было выташить из этого txt 5 самых больших чичел - но незнаю как!
PHP: <?php // исходная строка $count="2|0|0|3|0|1|0|5|0|7|3|4|1|2|0|3|1"; // сколько чисел нужно извлечь $max_num = 5; $arr = explode('|', $count); rsort($arr); $tmp_max = $arr[0]; $max[0] = $arr[0]; for ($i = 0; $i < sizeof($arr); $i++) { // проверяем чтобы не записывать одинаковые числа if ($arr[$i] < $tmp_max) { $max[] = $arr[$i]; $tmp_max = $arr[$i]; } if (sizeof($max) >= $max_num) { break; } } // смотрим результат echo "<pre>"; print_r($max); echo "</pre>"; ?>
PHP: <?php $numbers="2|0|0|3|0|1|0|5|0|7|3|4|1|2|0|3|1"; $num_arr = explode("|", $numbers); $count = array_count_values($num_arr); arsort($count); $result = Array(); while ($num = current($count)) { $result[key($count)] = $num; next($count); } Хотя можно пойти еще более простым способом: PHP: <?php $numbers="2|0|0|3|0|1|0|5|0|7|3|4|1|2|0|3|1"; $count = Array(); for ($i = 0; $size = strlen($numbers); $i < $size; $i += 2) { $count[$numbers[$i]] = (isset($count[$numbers[$i]])) ? $count[$numbers[$i]] + 1 : 0; } arsort($count); $result = Array(); while ($num = current($count)) { $result[key($count)] = $num; next($count); } ?> В последнем варианте на 1 раз меньше проходимся по массиву.
Во первых числа могут быть двух и более значными. Во вторых нужно только 5 самых большых чисел а не весь список имеющихся в исходной строке. В третьих возможно топикастеру нужен список именно 5 и не меньше чисел, хотя в строке может быть и не набраться столько - тогда нужно будеть дополнить массив недостающими. Может такой вариант покажется приемлемым? PHP: <?php $numbers="12|0|0|13|0|10|0"; // сколько чисел нужно извлечь $max_num = 5; $num_arr = explode("|", $numbers); $count = array_count_values($num_arr); krsort($count); $result = array(); while (current($count) && sizeof($result) < $max_num) { $result[] = key($count); next($count); } // проверяем не заполнен ли массив до заданного числа элементов // если нет дополняем его if (($last_i = sizeof($result) - 1) < $max_num) { for ($i = $last_i; $i < $max_num; $i++) { $result[$i] = $result[$last_i]; } } ?>
А проще точно нельзя? PHP: <?php $numbers="2|0|0|3|0|1|0|5|0|7|3|4|1|2|0|3|1"; $num_arr = explode("|", $numbers); $sorted_five=array_slice(rsort($num_arr), 0, 5); ?>
karakh - молодца! Действительно краткость сестра таланта! Только немного не точно PHP: $numbers = "2|0|0|3|0|1|0|5|0|7|3|4|1|2|0|3|1"; $num_arr = explode("|", $numbers); rsort($num_arr); // возвращает все таки не массив а - bool $sorted_five = array_slice($num_arr, 0, 5); echo "<pre>"; print_r($sorted_five); echo "</pre>"; [/php]
Там юному падавану Игорь_Vasinsky потребовалось еще и индексы из массива выковыривать. Поэтому не PHP: rsort($num_arr); , надо изменить на PHP: arsort($num_arr); . ну и вывод меняется соответственно на PHP: reset($num_arr); while (list($key, $val) = each($num_arr)) { echo "$key = $val\n"; }
Превосходно. Тока результат: Array ( [0] => 7 [1] => 5 [2] => 4 [3] => 3 [4] => 3 ) А необходим 7 (10) 5 (8) 4 (12) 3 (4) 3 (11) Чтоб вывод был именно такой, т.е. вы выдали места с наибольшего до меньшего, а нужно - порядковые номера в массиве! Так можно? Пардон за трэды, форум выдал чо тема удалена.
0 = 7 1 = 5 2 = 4 3 = 3 4 = 3 5 = 3 6 = 2 7 = 2 8 = 1 9 = 1 10 = 1 11 = 0 12 = 0 13 = 0 14 = 0 15 = 0 16 = 0 не приемлемо
Если упростит то объясню что это: В этом файле записывается кол-во скачек файлов, есть другой файл где в таком же виде записано название файлов Моя задача вывести рейтинг 5 ти наиболее скачиваемых файлов