Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: максимальное значение массива
 
 автор: vadimka   (03.06.2011 в 17:54)   письмо автору
 
 

Здравствуйте!
как определить максимальное значение массива:
$week[$i][$j]

?

  Ответить  
 
 автор: cheops   (03.06.2011 в 18:15)   письмо автору
 
   для: vadimka   (03.06.2011 в 17:54)
 

Можно воспользоваться функцией max()
<?php
  
...
  echo 
max($week[$i]);
  ...
?>

  Ответить  
 
 автор: vadimka   (03.06.2011 в 19:17)   письмо автору
 
   для: cheops   (03.06.2011 в 18:15)
 

у меня как:
я взял скрипт календаря, мне с этого форума
http://softtime.ru/forum/read.php?id_forum=1&id_theme=79438

вместо праздничных дней мне нужно выделить дату ""текущего номера газеты (понедельник, четверг)
вместо
if($j == 5 || $j == 6 || ($date[date('n')][$week[$i][$j]]))  
сделал:
if($j == 0 || $j == 3 )

мне выдает номера понедельников и четвергов и вот if($current>$week[$i][$j] )допустим сегодня 7 число соответственно выдает: 2,6 вот 6 - это текуший номер, который в наличии.

  Ответить  
 
 автор: cheops   (03.06.2011 в 19:55)   письмо автору
 
   для: vadimka   (03.06.2011 в 19:17)
 

А что теперь нужно получить? Под максимальным значением мы что будем подразумевать?

  Ответить  
 
 автор: vadimka   (06.06.2011 в 11:06)   письмо автору
 
   для: cheops   (03.06.2011 в 19:55)
 

ну вот сегодня if($week[$i][$j]<= $current )
выдает 2,6 мне нужно 6

если бы было сегодня - 17, то 2 6 9 13 16 самое большое - 16. Вот 16 нужно...

  Ответить  
 
 автор: cheops   (06.06.2011 в 11:11)   письмо автору
 
   для: vadimka   (06.06.2011 в 11:06)
 

А вы эти числа (2, 6) складируйте в массив, а потом получайте максимальное при помощи функции max().

  Ответить  
 
 автор: vadimka   (06.06.2011 в 11:33)   письмо автору
 
   для: cheops   (06.06.2011 в 11:11)
 

вот тут у меня проблема. далею так:

$arr=array($week[$i][$j]);
        $newarr= $arr[0];
        echo "<pre>";
        print_r($newarr);
        echo max($newarr)."<br>";

массив есть на max($newarr) выдает ошибку:
Warning: max() [function.max]: When only one parameter is given, it must be an array in

  Ответить  
 
 автор: cheops   (06.06.2011 в 11:54)   письмо автору
 
   для: vadimka   (06.06.2011 в 11:33)
 

Вот этой строкой вы превращаете массив в переменную (из-за этого и возникает ошибка)
$newarr= $arr[0];
вероятно имелась в виду следующая строка
$newarr[] = $arr[0];

  Ответить  
 
 автор: vadimka   (06.06.2011 в 13:01)   письмо автору
 
   для: cheops   (06.06.2011 в 11:54)
 


$arr=array($week[$i][$j]);
 echo "<<".($arr[0]).">><br>";

Выдает:
то что нужно, но когда ставишь max ($arr[0]) - выдает ошибку...

  Ответить  
 
 автор: cheops   (06.06.2011 в 13:08)   письмо автору
 
   для: vadimka   (06.06.2011 в 13:01)
 

Потому что вы передаете скалярное значение, а функция max() требует массив, т.е. вместо max ($arr[0]) нужно писать max ($arr).

  Ответить  
 
 автор: vadimka   (06.06.2011 в 13:14)   письмо автору
 
   для: cheops   (06.06.2011 в 13:08)
 

ну, да,
echo "<pre>";
                print_r($arr);



Array
(
    [0] => 6
)
  Array
(
    [0] => 13
)
  Array
(
    [0] => 2
)
 Array
(
    [0] => 9
)
 Array
(
    [0] => 16
)
 

если написать max ($arr) - выдает все эти цифры

  Ответить  
 
 автор: cheops   (06.06.2011 в 13:38)   письмо автору
 
   для: vadimka   (06.06.2011 в 13:14)
 

Вероятно это из-за того, что у вас в массиве одна цифра. У вас же есть массив $newarr, в который вы складируете все цифры, применяйте max() к нему.

  Ответить  
 
 автор: vadimka   (06.06.2011 в 15:46)   письмо автору
 
   для: cheops   (06.06.2011 в 13:38)
 

у меня все это в цикле:) соответственно зарядка массива идет в цикле:

$arr[]=$week[$i][$j];

я просто не подумал, что "макс" делать надо вне цикла:)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования