2014-07-18 67 views
2

我有一個多維數組稱爲$響應 - 並且最大數量不是unqiue。有時,它只是1到4。我想的第二個「0」,最後一個數組:PHP:最後多維數組與最終功能

$last_value = $response['name1'][0]['name2'][0]['name3']['name4']; 

...所以,如果有

$last_value = $response['name1'][0]['name2'][0]['name3']['name4']; 
$last_value = $response['name1'][0]['name2'][1]['name3']['name4']; 
$last_value = $response['name1'][0]['name2'][2]['name3']['name4']; 
$last_value = $response['name1'][0]['name2'][3]['name3']['name4']; 

選擇具有:

$last_value = $response['name1'][0]['name2'][3]['name3']['name4']; 

我知道,有php function end,但我不明白上面的例子。

回答

1
$last_value = end($response['name1'][0]['name2'])['name3']['name4']; 

函數或方法的解引用需要PHP 5.4+。

否則它必須是PHP 5.4之前的兩個參與者。

$pre = end($response['name1'][0]['name2']); 
$last_value = $pre['name3']['name4']; 

測試環境:

<?php 

$response['name1'][0]['name2'][0]['name3']['name4'] = '1'; 
$response['name1'][0]['name2'][1]['name3']['name4'] = '2'; 
$response['name1'][0]['name2'][2]['name3']['name4'] = '3'; 
$response['name1'][0]['name2'][3]['name3']['name4'] = '4'; 

$myLastElement = end($response['name1'][0]); //Clément Andraud's Answer 
$last_value = end($response['name1'][0]['name2'])['name3']['name4']; 
var_dump($myLastElement); //Clément Andraud's Output 
echo '<br />'; 
var_dump($last_value); 

?> 

測試結果:

array(4) { [0]=> array(1) { ["name3"]=> array(1) { ["name4"]=> string(1) "1" } } [1]=> array(1) { ["name3"]=> array(1) { ["name4"]=> string(1) "2" } } [2]=> array(1) { ["name3"]=> array(1) { ["name4"]=> string(1) "3" } } [3]=> array(1) { ["name3"]=> array(1) { ["name4"]=> string(1) "4" } } } 
string(1) "4" 
+0

非常感謝!而已 :-) – Sebastian

1
$myLastElement = end($response['name1'][0]); 

這不行?

+0

不會是'$ LAST_VALUE =端($響應[ 'NAME1'] [0] [「NAME2 '])['name3'] ['name4'];''PHP 5.4 +' – t3chguy

+0

@ t3chguy:no。這是嵌套6深的數組,而OP需要第三深數組的最後一個。你的結局是最後一個6深陣列的結束。 –

+0

他最後一段代碼和它之前的標題暗示了否則,表明他希望輸出'$ last_value = $ response ['name1'] [0] ['name2'] [3] ['name3' ] ['name4'];' – t3chguy