2017-06-19 58 views
-1

如果關鍵字中的關鍵字的子字符串爲'TB1',我想移除關聯數組的所有元素。刪除關聯數組中所有元素(如果他們在關鍵字中有特定字)

我的數組是這樣的:

$output= [ 
     'TB1_course' => 'required' 
     'TB1_session' => 'required' 
     'TB2_course' => 'required' 
    ] 

我想刪除TB1_course和TB1_session,讓我最後一個數組的樣子:

$output =[ 
    'TB2_course' => 'required 
] 

有沒有什麼方式去在做這個一個簡單的簡潔時尚?

我最初的猜測是使用每個循環:

foreach ($output as $key =>$value){ 
//remove 
} 

謝謝所有幫助!

+0

您應該嘗試**自己編寫代碼**。在[**做更多的研究**之後](https://meta.stackoverflow.com/q/261592/1011527)如果你有問題**發佈你已經嘗試了**的**明確的解釋不工作**並提供[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。閱讀[如何問](http://stackoverflow.com/help/how-to-ask)一個很好的問題。請務必[參觀](http://stackoverflow.com/tour)並閱讀[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

+0

這是好的'unset($ output ['TB1_course']); unset($ output ['TB1_session']);' –

回答

1

濾波器陣列由鍵:

$input = [ 
    'TB1_course' => 'required', 
    'TB1_session' => 'required', 
    'TB2_course' => 'required', 
]; 

$filter = function ($key) { 
    return substr($key, 0, 4) === 'TB2_'; 
}; 

$output = array_filter($input, $filter, ARRAY_FILTER_USE_KEY); 

var_dump($output); 

輸出:

array(1) { 
    'TB2_course' => 
    string(8) "required" 
} 

array_filter功能是濾除陣列有用的文檔查看http://php.net/array_filter

+0

它完美的工作,謝謝! – Muhammad

相關問題