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