|
|
|
|
|
для: cheops
(14.04.2005 в 22:57)
| | Наоборот! У меня юникстаймстамп в некоторых местах - одинаков... и вот из-за этой ksort и krsort - происходит выводт пользователю только уникальных значений... а мне нужно - всех. | |
|
|
|
|
|
|
|
для: Shorr Kan
(14.04.2005 в 18:56)
| | А дублируется что? Есть функция array_unique, которая удаляет из массива дублирующие значения и оставляет только уникальные. | |
|
|
|
|
|
|
|
для: cheops
(14.04.2005 в 12:13)
| | Так... Ошибок нет - и вроде даже сортирует... Но убивает дублирующиеся значения... Это можно как-то исправить? А то только половина истории вывелась. | |
|
|
|
|
|
|
|
для: Shorr Kan
(14.04.2005 в 11:59)
| | А ну да, конечно же, боюсь без foreach во втором цикле не обойтись
<?php
$itog=0;
foreach($arr as $value){
$info=explode("*",$value);
$itog=$itog+$info[2];
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.04.2005 в 11:26)
| | Он мне на arr[$i] ругается... и правильно - если я принтую arr[0] - это неизвестная штука для него... формат строки сейчас такой:
1112685502*05 April 2005 11:18:22*Percent*+0.00
Первое - это unix_timestamp...
$count=count($file);
for($i=0;$i<$count;$i++)
{
$info=explode("*",$file[$i]);
$arr[$info[0]]=$info[1]."*".$info[2]."*".$info[3];
}
...
...
...
ksort($arr);unset($info);
for($i=0;$i<$count;$i++){
$info=explode("*",$arr[$i]);
$itog=$itog+$info[3];
|
Ошибки, ошибки, ошибки... он не понимает $arr[0], $arr[1], и т.д. | |
|
|
|
|
|
|
|
для: Shorr Kan
(14.04.2005 в 00:39)
| | Смысл такой что мы разрезаем строку
2005 04 09 14:22:47*09 April 2005 14:22:47*Percent*+0.89
|
по символу * - получается массив $info c 4 элменетами, мы создаём массив $arr, ключём которого выступает первый элмент (время, по которому мы сортируем), а значение оставшаяся часть строки. Так как она распилена по символу * мы её опять склеиваем. Потом сортируем массив и режем уже строку
09 April 2005 14:22:47*Percent*+0.89
|
А да, во вотором цикле массив $info лучше уже не использовать, так как он замусорен первым циклом, или обнулить его при помощи unset
перед повторным использованием. | |
|
|
|
|
|
|
|
для: Shorr Kan
(14.04.2005 в 08:31)
| | Ну это было бы идеально, я про это и намёкивал во вотором посту :))) - это удобнее, так как число будет одно, а не несколько, следовательно и сортировка будет происходить очень быстро. | |
|
|
|
|
|
|
|
для: Shorr Kan
(14.04.2005 в 00:39)
| | А что если писать для сортировки date("U"); ?
"U
Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT)
" | |
|
|
|
|
|
|
|
для: cheops
(13.04.2005 в 21:51)
| | Я, конечно, еще не успел попробовать... но вот так вот смотрю.... не понимаю кода. Попробую - модет в процессе использования что и пойму... Но если у вас будет время - попробуйте объяснить первый for... Что-то он не коннектится с моим междоушием...
======
Попробовал... Ошибки :(
Во-первых, он не считает повторяющиеся строки. Т.е., у меня 15 строк, но уникальных по этой дате в $info[0] - только девять. Он на print count($arr) девять и печатает. Во-вторых... Просто ошибки выводит.
Notice: Undefined offset: 0
это на строку, где $info=explode("*",$arr[$i]); | |
|
|
|
|
|
|
|
для: Shorr Kan
(13.04.2005 в 14:31)
| | Т.е. первая дата у нас в info[0]? Тогда следует сначала отсортировать массив
<?php
$arr = array();
for($i=0;$i<$count;$i++)
{
$info=explode("*",$file[$i]);
$arr[$info[3]] = info[1]."*".info[2]."*".info[3];
}
// Сортируем
ksort($arr);
?>
|
а затем выполнять полезную работу...
<?php
$itog=0;
for($i=0;$i<$count;$i++){
$info=explode("*",$arr[$i]);
$itog=$itog+$info[2];
...
?>
|
| |
|
|
|
|