2015-02-03 3 views
0

Я пытаюсь выполнить функцию фильтра в PHP. Я начал делать сильфон:Индивидуальные значения массива фильтра в 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».

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

Спасибо за много заранее.

ответ

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]; 
Смежные вопросы