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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Фунция поиска минимума

Сообщения:  [1-10]   [11-15] 

 
 автор: sidPR   (15.02.2008 в 12:52)   письмо автору
 
   для: sidPR   (08.02.2008 в 17:30)
 

function min_r($arr) 
    { 
    $min = $arr[0]['count']; 
    $index[]=0; 
            for($i=1;$i<count($arr);$i++) 
        { 
        if($arr[$i]['count']<$min){ 
            $min = $arr[$i]['count']; 
            unset($index); 
            $index[]=$i; 
            } 
        elseif ($arr[$i]['count']==$min){ 
            $index[]=$i; 
             } 
        } 
    return $index; 
 }



[Fri Feb 15 12:48:28 2008] [error] PHP Notice:  Undefined offset:  12 html/index.php on line 62
[Fri Feb 15 12:48:28 2008] [error] PHP Notice:  Undefined offset:  12 html/index.php on line 63



62  if($arr[$i]['count']<$min){ 
63          $min = $arr[$i]['count'];


Где ошибка ?

   
 
 автор: sidPR   (08.02.2008 в 17:30)   письмо автору
3.5 Кб
 
   для: Shiva   (08.02.2008 в 17:23)
 

Вложил в пост листинг программы ...

   
 
 автор: Shiva   (08.02.2008 в 17:23)   письмо автору
 
   для: MIchail1982   (08.02.2008 в 17:20)
 

Это зачем? Чтобы еще под $new_arr память отвести?
С подавляющей вероятностью, проблема с памятью теперь не в этой функции, а в других частях файла.

   
 
 автор: MIchail1982   (08.02.2008 в 17:20)   письмо автору
 
   для: sidPR   (08.02.2008 в 16:59)
 

моя функция работает с 350000 записей(на 400000 загибается)
попробуйте разбить ваш массив на куски
$new_arr = array_chunk($arr, 10000, TRUE);
foreach ($new_arr as $arr_2)
    $temp = min_r($arr_2);

и потом взять и сравнить минимальные элементы

   
 
 автор: sidPR   (08.02.2008 в 16:59)   письмо автору
 
   для: Shiva   (08.02.2008 в 16:52)
 

MIchail1982 Спасибо.. но не помогло видимо другие функции тоже построены не правильно и оч много хранят в себе что скрипт не справляется :(

   
 
 автор: Shiva   (08.02.2008 в 16:52)   письмо автору
 
   для: sidPR   (08.02.2008 в 16:36)
 

Ваша хранит данные об индексах всех элементов, дублируя их в памяти. А функция MIchail1982 - только об индексах предполагаемого наименьшего элемента, в каждый отдельный момент времени. У вас ведь проблема и была в превышении лимита ОП.

   
 
 автор: sidPR   (08.02.2008 в 16:36)   письмо автору
 
   для: MIchail1982   (08.02.2008 в 16:16)
 

а чем моя функция хуже в таком случае чем ваша ?

   
 
 автор: MIchail1982   (08.02.2008 в 16:16)   письмо автору
 
   для: sidPR   (08.02.2008 в 15:33)
 

function min_r($arr)
    {
    $min = $arr[0]['count'];
    $index[]=0;
            for($i=1;$i<count($arr);$i++)
        {
        if ($arr[$i]['count']<$min)
            {
            $min = $arr[$i]['count'];
            unset($index);
            $index[]=$i;
            }
        elseif ($arr[$i]['count']==$min)
            {
            $index[]=$i;
            }
        }
    return $index;
    }

   
 
 автор: sidPR   (08.02.2008 в 15:33)   письмо автору
 
   для: MIchail1982   (08.02.2008 в 14:37)
 

Вообще перестал работать :)

   
 
 автор: MIchail1982   (08.02.2008 в 14:37)   письмо автору
 
   для: sidPR   (08.02.2008 в 14:28)
 

так?
function min_r($arr)
    {
    $min = $arr[0]['count'];
    for($i=1;$i<count($arr);$i++)
        {
        if ($arr[$i]['count']<$min)
            {
            $min = $arr[$i]['count'];
            unset($index);
            $index[]=$i;
            }
        elseif ($arr[$i]['count']==$min)
            {
            $index[]=$i;
            }
        }
    return $index;
    }

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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