подскажите в чем проблема, ситуация смешная, а решить не знаю как.
есть файл с данными, пусть test.dat:
в файле находятся такие цифры:
3::
4::
6::
8::
5::
вывожу его циклом,
подскажите пожалуйста как определить максимальное число в файле!
самое интересное, что с массивами, как показано в доках -
работает! с файлами почему-то не хочет...
как я понял, нужно эти числа как-то засунуть в массив и потом прочитать этой функцией, кто может, покажите пожалуйста код.
заранее благодарен
Спустя 10 минут, 6 секунд (28.05.2009 - 20:28) Vikt0r написал(а):
Цитата (Vikt0r @ 28.05.2009 - 17:18) |
подскажите в чем проблема, ситуация смешная, а решить не знаю как.
есть файл с данными, пусть test.dat:
в файле находятся такие цифры:
3:: 4:: 6:: 8:: 5::
вывожу его циклом,
PHP | $file = file('test.dat');
for($i=0; $i<count($file); $i++) { list($num) = explode("::", $file[$i]);
// проблема заключается в том, что мне нужно определить максимальное число и вывести его....
// пробую так:
$max = max($num);
print $max;
// и нихрена не выходит... пишет ошибку: [b]Warning: Wrong parameter count for max() in \localhost\max.php on line 12[/b]
} |
подскажите пожалуйста как определить максимальное число в файле! самое интересное, что с массивами, как показано в доках - работает! с файлами почему-то не хочет...
как я понял, нужно эти числа как-то засунуть в массив и потом прочитать этой функцией, кто может, покажите пожалуйста код.
заранее благодарен
|
извините за беспокойство.... поторопился с созданием такой интересной темки )).
кому интересно, вот код
PHP |
<? $file = file('test.dat');
for($i=0; $i<count($file); $i++) { list($num) = explode("::", $file[$i]);
$maxs[$i] = $num; }
$max = max($maxs);
print $max;
|
Спустя 1 час, 3 минуты, 37 секунд (28.05.2009 - 21:32) sergeiss написал(а):
Ежели каждая строка в начале содержит нужное число, то можно сделать всё это немного проще.
И, кстати, тут в любом случае больше подойдет цикл foreach.
PHP |
$file= file( 'test.dat' ); foreach( $file as $k => $v ) { $file[$k]=intval( $file[$k] ); }
$max = max($file);
print $max; |
Спустя 1 месяц, 18 дней, 11 часов, 57 минут, 13 секунд (17.07.2009 - 09:29) Liga-liga написал(а):
У меня возникла проблема код использовал тот же самый:
PHP |
<? $file = file('test.dat');
for($i=0; $i<count($file); $i++) { list($num) = explode("::", $file[$i]);
$maxs[$i] = $num; }
$max = max($maxs);
print $max; |
Но определять максимальное значение напрач отказывался!!!
содержимое файла было тоже самое
3::
4::
6::
8::
5::
Помогло такое действие: перед числами поставить еще один разделитель!)
::3::
::4::
::6::
::8::
::5::
не знаю можеть когда применяется explode файла, то первое значение считается не просто 3как в данном примере, а + еще и какой нибудь доп информацие? Странно, но объяснить сам я смог только так) Просто вдруг кто сталкнется!)