底線,我有一個巨大的多維數組返回ldap_get_entries,我試圖根據位置屬性解析到不同的組。從數組基於值獲取記錄
在PowerShell中,我可以這樣做:
$location1 = Get-ADUser -Filter * | ? {?_.l -eq "test_location"}
什麼我目前在做內PHP(至於我的大腦就會讓我去)是一樣的東西:
Foreach ($records as $record) {
if (isset($record['l'])) {
switch ($record['l'][0]) {
case "test_location1":
$location1[] = $record;
continue 2;
case "test_location2":
$location2[] = $record;
continue 2;
}
}
}
然後我使用foreach針對使用上述方法的位置變量數組($ location1,$ location2)的循環(替代語法),將記錄排序到其適當的位置變量中。通過這種方式,我構建了一個將每個位置記錄組合在一起的HTML表格。我爲每個位置創建一個新的表格,每個組之間有一些HTML代碼,所以我不相信按位置對ldap結果進行排序會起作用,因爲它會輸出一個大表。
有什麼辦法可以在PHP中指定WHERE子句嗎?因此,我可以將具有匹配鍵值的數組中的所有記錄分配給變量1,並將具有不同匹配鍵值的數組中的所有記錄分配給變量2。
我假設我正在以業餘腳本方式解決此問題。如果有更簡單的方法來完成此任務(可能會跳過賦值記錄到變量部分),或任何類型的「最佳做法」,我缺少在這裏,我渴望學習它。
在此先感謝!
它看起來像我們在這裏的東西。我將不得不考慮這些概念,並看看我能否讓他們爲我的情況工作。 – Cody
你可以用最蹩腳的詞語解釋foreach($ records as $ record)和foreach($ recordsSorted as $ location => $ records)之間的區別。來自Powershell,我不確定我是否理解這兩個foreach結構之間的區別。 – Cody
前者將數組$ record中的每個項目分配給變量$ record。後者做同樣的事情,但也將條目的數組鍵(在本例中是''''''''屬性的值)賦值給變量$ location。有關PHP的關聯數組的更多信息,請參見http://php.net/manual/en/language.types.array.php – heiglandreas