2011-10-03 75 views
-1

我有以下二維數組,我想比較一些值。首先,我想從數組中獲得最高值,並依賴於時間從具有相同索引的前一個值中提取。php數組操作

例如:最高(work_something(223)) - 先前(work_something(120))

$data = array(
    0 => array(
    'time' => '2011-10-03 18:43:00', 
), 
    1 => array(
    'time' => '2011-10-03 18:44:00', 
), 
    2 => array(
    'time' => '2011-10-03 18:45:00', 
    'item_something' => -17, 
    'keyword_something' => 0, 
    'keyword_something_1' => 0, 
    'search_something' => 0, 
    'search_links_something' => 0, 
    'work_something' => 120, 
), 
    3 => array(
    'time' => '2011-10-03 18:45:00', 
    'item_something' => -17, 
    'keyword_something' => 0, 
    'keyword_something_1' => 0, 
    'search_something' => 0, 
    'search_links_something' => 0, 
    'work_something' => 223, 
), 
); 
+0

會最高(work_something)總是最後一個數組元素?意思是,如果你有一個元素[4],work_something是否會高於[3] ['work_something']? – jprofitt

+0

到目前爲止,我做了一個循環,以獲得最大值在子數組中,比時間索引值有問題,而被解釋爲最高。如果我使用unset($ item ['time'])比我不能通過日期和時間比較值。數組包含動態元素,所以在work_something之後有更多元素 – lgt

回答

0
$array //This is your 2D array 

$highest = 0; 
foreach($array as $key => $value): 
    if(isset($value['work_something'])){ 
    if($value['work_something'] > $highest){ 
    $highest = $value['work_something']; //This is highest 'work_something' value 
    $highest_array_key = $key; //This is the key of 'work_something' array 
    } 
    } 
endforeach; 

//To compare with previews element use 
$array[$highest_array_key - 1] //this is prew element 

例如:最高(work_something(223)) - 先前(work_something(120))

$highest - $array[$highest_array_key - 1]['work_something'];