Настраиваемые значения массива фильтров в php

0

Я пытаюсь сделать функцию фильтра в PHP. Я начал делать рев:

function handleDuplicates($duplicateMonthReportsArray,$NodeReports,$whatToCompare){
    foreach ($duplicateMonthReportsArray as $duplicate) {
       $duplicateReportsArray = $NodeReports->nodeReports[$duplicate]->indvReports;
       var_dump($duplicateReportsArray); //Prints out what I have written bellow
       foreach ($duplicateReportsArray as $duplicateReport) {
           if($whatToCompare==="both"){
               //Return higest [NoSamples] and latest ["StopTime"] (If possible).
           }
           else if($whatToCompare==="latest"){
               //Return array with latest ["StopTime"]          
           }else{
              //Return array with higest [NoSamples] (If both same like the bellow case then return latest "StopTime")

           }
       }
    }
}

И var_dump выводит ниже:

array(2) {
  [""AU Feb-13",201302282                                                                                                                                                                                                            "]=>
  array(2) {
    ["StopTime"]=>
    string(23) "2013-02-28 23:00:00.000"
    ["NoSamples"]=>
    string(5) "673.0"
  }
  [""AU Feb-13",201302282                                                                                                                                                                                                            "]=>
  array(2) {
    ["StopTime"]=>
    string(23) "2013-02-28 23:55:00.000"
    ["NoSamples"]=>
    string(5) "673.0"
  }
}

То, что я хочу сделать, напечатано в коде как комментарии. Я хочу сделать настраиваемую функцию фильтра, которая пересекает массив объектов, который похож на файл var_dump, который я написал выше, и либо возвращаю экземпляр массива с максимальным "StopTime", "Самые высокие NoSamples", либо оба (если возможно, иначе возвращаются только самый большой "NoSamples".

Как вы собираетесь реализовать эту функцию фильтрации? Есть ли готовые функции фильтра, готовые для использования в моем случае, которые берут массив массивов и выполняют фильтр?

Заранее большое спасибо.

Теги:

1 ответ

0
Лучший ответ

Предполагая, что переменная $ arrays содержит данные var_dump:

$maxStopTime = "";    
$maxStopTimeIx = 0;

$maxNoSamples = "";
$maxNoSamplesIx = 0;

foreach ($arrays as $k=>$array) {
   if ($array['StopTime'] > $maxStopTime) {
      $maxStopTimeIx = $k;
      $maxStopTime = $array['StopTime'];
   }

   if ($array['NoSamples'] > $maxNoSamples) {
      $maxNoSamplesIx = $k;
      $maxNoSamples = $array['NoSamples'];
   }
}

$maxStopTimeArray = $arrays[$maxStopTimeIx];
$maxNoSamplesArray = $arrays[$maxNoSamplesIx];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню