PHP:最后一个带有结束函数的多维数组


PHP: last multidimensional array with end-function

我有一个名为$response的多维数组,并且最大计数不是unqiue。有时只有1到4。我想要第二个"0"的最后一个数组:

$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函数的末尾,但我不明白上面的例子。

$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"
$myLastElement = end($response['name1'][0]);

这不管用吗?