![](/img/trans.png)
[英]run a code block in php foreach even when foreach array is empty
[英]Even if array for foreach is empty, run it
我遇到了一個小問題。 好吧,我通過聲明變量$all_meta_for_user = get_user_meta($user_id, 'meta_key', false)
從wordpress數據庫中獲取一些user_meta數據,這些數據存儲為數組。 然后,我想檢查是否存在某些特定數據,如果存在,則執行某些操作,如果不存在,則執行其他操作。 我在stackoverflow的某個地方有一個提示,我可以通過這種方式實現它:
foreach($all_meta_for_user as $key=>$val) :
if (array_key_exists ('some_key', $val) && array_key_exists ('some_other', $val)) { do something } else {do something else }
endforeach;
只要數據庫中存在關聯的“ meta_key”(這很明顯:)),它就可以很好地工作。 但是,如果不是這樣呢? 然后,顯然,foreach是錯誤的,並且不會運行。 基本上,即使數組為空,我也想顯示else
內容。 我該如何修改我的代碼來實現呢? 我想我可以得到它的工作,如果我第一次檢查if
數組為空,如果沒有- ,用foreach做的代碼,如果是-做我的事情。 但是問題是,在其他地方,有很多代碼,所以我想避免重復。
因此,簡單地說,問題是,如何以一種不錯的方式實現該目標,這不會使我的代碼加倍:)謝謝!
PS我真的找不到合適的主題名稱。 如果有人對如何命名有更好的主意,請發表評論,以便我進行更改! 謝謝!
您可以創建“ else”函數,並將其與if / else想法結合使用。 這樣,您將沒有任何重復,只需要函數調用即可:
function elseFunction() {
//do something else
}
if (!empty($all_meta_for_user)) {
foreach($all_meta_for_user as $key=>$val){
if (array_key_exists ('some_key', $val) && array_key_exists ('some_other',$val)){
// do something
}
else {
elseFunction(); // this is changed
}
}
}
else {
elseFunction();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.