2014-02-26 41 views
0

我想要pubsite_id = 8的所有陣列,最好的方式是做什麼。我可以用foreach來做,但當它變得更大時,它似乎非常昂貴。什麼是在PHP中篩選以下多維數組的最佳方式

array(
    array("startdate" => "2014-02-01", 
     "enddate"  => "2014-02-13", 
     "pubsite_id" => "1", 
     "dfp_order_id" => "116260016", 
     "amount"  => "-5000.00000", 
     "amountperday" => -384.61538461538 
), 
    array("startdate" => "2014-02-01", 
     "enddate"  => "2014-02-28", 
     "pubsite_id" => "8", 
     "dfp_order_id" => "116260016", 
     "amount"  => "-700.00000", 
     "amountperday" => -25 
), 
    ... 
) 
+0

一個'foreach'將被罰款。過早優化代碼很少有用。 – Jim

+1

你需要循環一種或另一種。沒有循環就沒有不可思議的方式。 'foreach'就是實現它的最有效方式,雖然'array_filter'會讀取更好的IMO。 – deceze

回答

-1
foreach($array as $value) 
{ 
    foreach($value as $key => $val) 
    { 
     if($val['pubsite_id'] == "8") 
    { 
     /*your stuff */ 
    } 

    } 
} 
+0

對不起,更新爲8而不是1 :) – Volterony

1

每@ deceze的建議,array_filter是一個非常乾淨的路要走,並且將執行以及其他任何東西:

$filtered_arr = array_filter($arr, function($item) { 
    return $item["pubsite_id"] == "8"; 
}) 
相關問題