簡體   English   中英

即使foreach數組為空,也要運行它

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM