[英]What is going here PHP - I don't understand?
我有一個具有所有不同種類值的可組合數組,但是下面的內容將找到所有以Study
結尾的數組鍵並檢查其布爾值,但是我不明白的是它是如何工作的,無論如何都在乎解釋一個一步一步的解釋嗎?
$study = array_filter(array_intersect_key($user, array_flip(preg_grep('/Study$/', array_keys($user)))));
if ($study) {
......
}
php如何對以Study
結尾的鍵進行排序?
還有沒有更好的方法可以做到這一點?
帶有嵌套函數調用的表達式是從內部到最外面的括號求值的。 執行順序如下:
array_keys($user)
-將數組變成鍵列表 preg_grep('/Study$/',
-提取特定的鍵 array_flip(
-將鍵列表變回關聯的鍵數組 array_intersect_key($user,
-使用過濾后的關聯鍵列表將原始數組縮小為所需的子集 array_filter(
-刪除非true條目(NULL和false) $study =
-分配結果 array_keys($ user)返回鍵作為值,而preg_grep('/ Study $ /'過濾器列出僅返回那些以字母“ Study”結尾($是結束錨點)的值,從而為我們提供了一組過濾后的鍵值。
然后,array_flip反轉過濾后的數組,以便這些值成為新數組中的鍵,該數組僅包含具有過濾后的鍵集的條目。
然后,通過array_intersect_key()函數將該鍵的子集與原始數組鍵進行匹配,以便僅返回原始數組中具有與過濾后的數組中的鍵匹配的鍵的項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.