PHP:带有end-function的最后一个多维数组

时间:2014-07-18 15:41:44

标签: php arrays multidimensional-array

我有一个名为$ 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 function end,但我不能通过上面的示例得到它。

2 个答案:

答案 0 :(得分:1)

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

这不起作用?

答案 1 :(得分: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"