我有一个PHP数组,它包含不同数量的元素和不同类型的关联,如下所示:
$example =
Array
(
[0] => 12345
[1] => 100
[2] => Some String
...
[17] => 2
[18] => 0
[type] => Some String
[inst] => Array
(
[0] => Some String
)
[method] => Some String
)
$other =
Array
(
[0] => 45678
[1] => 250
[2] => Some String
...
[8] => 7
[9] => -2
[inst] => Array
(
[0] => Some String
[1] => Some String
)
)
我要做的是获取这些数组中的最后一个数字索引以及之前的一些数字索引。就像,在第一个例子中,我想得到$example[18]
,在第二个例子中,我想要返回$other[9]
。
我在命名的关联发挥作用之前使用count($array)-1
。
答案 0 :(得分:3)
使用 max 和 array_keys
echo max(array_keys($array));
如果有可能使用字母数字键,您可以使用
echo intval(max(array_keys($ array))); 击>
echo max(array_filter(array_keys($array), 'is_int'));
// hint taken from Amal's answer, but index calculation logic is still same as it was.
<强> Demo 强>
答案 1 :(得分:3)
如果您的数组没有订购,并且您想获得最后数字索引,那么您可以使用array_filter()
,如下所示:
$numerickeys = array_filter(array_keys($example), 'is_int');
echo end($numerickeys); // => 18
答案 2 :(得分:1)
这个将始终按预期工作:
var_dump(max(array_filter(array_keys($example), 'is_int'))); # int(18)
var_dump(max(array_filter(array_keys($other), 'is_int'))); # int(9)