Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取PHP数组中的最后一个数字索引_Php_Arrays - Fatal编程技术网

获取PHP数组中的最后一个数字索引

获取PHP数组中的最后一个数字索引,php,arrays,Php,Arrays,我有一个PHP数组,它有不同数量的元素和不同类型的关联,如下所示: $example = Array ( [0] => 12345 [1] => 100 [2] => Some String ... [17] => 2 [18] => 0 [type] => Some String [inst] => Array ( [0] => Some

我有一个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

使用

echo max(array_keys($array));
如果可能使用字母数字键,您可以使用

echo intval(最大值(数组_键($array))


如果您的数组没有排序,并且您希望获得最后一个数字索引,那么您可以使用以下方法:

echo max(array_keys($array));
$numerickeys = array_filter(array_keys($example), 'is_int');
echo end($numerickeys); // => 18

此选项将始终按预期工作:

var_dump(max(array_filter(array_keys($example), 'is_int'))); # int(18)
var_dump(max(array_filter(array_keys($other), 'is_int'))); # int(9)

Max将字符串计算为0。有意思,我不知道。那很有帮助。我想一个选择是使用数组_键+1Yep,max:
当给定一个字符串时,它将在比较时转换为整数
如果数组包含
(“19xyz”=>“值”)
,该怎么办?将考虑开头的数字;忽略xyz。“19xyz”的计算结果为“19”。如果字符串开头有数字,但不希望它返回这些数字,则仅使用max将不起作用。如果数组键未排序,则此操作将失败@科里:你应该弄清楚你到底需要最后一个数字键的值还是最大的数字键的值。