2016-08-02 44 views
-6
$pass = array(); 

foreach ($var as $index) 
{ 
    if($index['Data']['Show'] == false) 
     continue; 

    $pass[] = $index; 
} 

echo json_encode($pass); 

我需要知道如何以更簡化和更快的速度獲得相同的結果。提高此代碼的速度? Foreach

+2

使用'array_filter' –

+3

你有多少數據,一個3行代碼的foreach速度不夠快?我懷疑是否會有一種解決方案可以加快速度,甚至是array_filter(雖然速度會更快,但不會像100x或任何重要的)。也許只使用數據庫並僅查詢想要顯示的行。 –

+0

你怎麼知道這段代碼很慢?您嘗試處理多少數據? –

回答

5

可能會稍快一些,我沒有測試過,但如果['Data']['Show']truefalse然後這是我會怎麼做:

$pass = array_filter($var, function($v) { return $v['Data']['Show']; }); 

如果它可能是評估爲false那麼其他值:

$pass = array_filter($var, function($v) { return $v['Data']['Show'] !== false; });