這已經讓我的腦子好幾天了。我以爲我有一個解決方案,但我發現很難找出一個始終工作的防彈片代碼。我正在遍歷一個多維數組。我有兩個函數,一個查看單個行,另一個查看數組。我有兩個數組的配置。多維數組可以包含單個元素或另一個數組。如何遍歷?
第一示例
[
'Person' => [
'Name' => 'John Smith'
]
]
(一個單一結果爲人,只有一個用於該人的名字)
第二示例
[
'Person' => [
'Name' => [
0 => 'John Smith',
1 => 'John Denver'
]
]
]
(其中單人,該人有多個名字。)
第三個例子
[
'Person' => [
0 => [
'Name' => 'John Smith'
],
1 => [
'Name' => 'Jane Doe'
]
]
]
(兩個人,每個只有一個名字。)
第四例子
[
'Person' => [
0 => [
'Name' => [
0 => 'John Smith',
1 => 'John Denver'
]
],
1 => [
'Name' => 'Jane Doe'
]
]
]
(兩個人,第一個擁有兩個名字,第二隻有一個)
希望這可以理解我在說什麼。當只有一條記錄時,它會返回單條記錄。如果有多條記錄,則會有一個包含每條記錄的數組。
我需要從開始到結束通過多維數組對橫向。我想弄清楚如何檢查是否有單個答案或多個答案。
我曾嘗試檢查數組鍵名,檢查是否鑰匙是整數VS字符串,如果事情是一個數組與否。
沒有什麼比我想象的更有效。任何人都可以幫助提供一種方法橫向和檢查使用例如一個foreach循環或函數?
如果有幫助,我有一個包含它試圖尋找鍵字段的名稱另一個數組。該陣列將具有類似的佈局:
[
'Person' => [
'type' => 'array',
'subfields' => [
'Name' => [
'type' => 'string'
]
]
]
]
任何幫助將不勝感激。
編輯
由於這是不明確的。我正在尋找如何使父鍵適用於子值,而不管該值是否爲單個值,或者如果它是多個值的數組。關鍵父級需要應用於所有子級,除非有另一個父級密鑰(理論上可能有無限數量的父級密鑰下的子級/父級密鑰。
最終
我設法想出解決辦法。感謝大家的幫助。
我沒有得到你的問題,我把所有你已經張貼在頂部的四個陣列,那麼什麼是你期望的輸出呢? –
不確定您是否可以選擇這樣做,但如果結果標準化,未來您和任何人都會更容易。我的意思是,無論有多少人或名字,總是使用第四個例子。 –
不幸的是我不能那樣做。我試圖使其儘可能健壯並考慮到許多不同的可能性。此代碼將用於解碼放入數組中的HTML/XML標記,並且我希望能夠處理拋出它的任何內容。 –