2015-10-16 82 views
-5

讓我們假設的第一要素,一搜索氣電兩用的返回值是這樣的得到一個數組

// If only one record is found 
$value = [ 
    'records' => [ 
    'record' => ['some', 'Important', 'Information'] 
    ] 
] 

// If multiple records are found 
$value = [ 
    'records' => [ 
    'record' => [ 
     0 => ['some', 'important', 'information'], 
     1 => ['some', 'information', 'I dont care'] 
    ] 
    ] 
] 

什麼woul'd是讓重要的信息(在多個記錄的情況下,最好的辦法,它總是第一個)?

我是否應該像

if (array_values($value['record']['records'])[0] == 0){//do something}; 

但我想,有一種方法更優雅的解決方案。

編輯: 而順便說一句,這不是一個重複的引用問題,只涉及多個記錄。

+0

Right @Uchiha並詳細解釋您的查詢。沒有得到你想要的。 –

+0

返回值應該是['some','important','infomation']。 –

+2

[獲取數組的第一個元素]的可能的副本(http://stackoverflow.com/questions/1921421/get-the-first-element-of-an-array) – marian0

回答

0

如果你想要一個數組的第一個元素,你應該使用reset。該函數將指針設置爲第一個元素並將其返回。

$firstValue = reset($value['record']['records']); 

編輯..在再次閱讀你的問題後,似乎你不想要第一個元素。 您更希望這個

if (isset($value['record']['records'][0]) && is_array($value['record']['records'][0])) { 
    // multiple return values 
} else { 
    // single return value 
} 

這樣做是一種錯誤proun的,我不會建議一個函數返回不同種類的陣列結構。

+0

好吧,那就是我所做的。我認爲可能會有更多奇特的解決方案:) –

0

檢查這樣的..

if(is_array($value['records']['record'][0])) { 
    // multiple records 
} else { 
    // single record 
}