是否可以在PHP中使用array_shift()并获取密钥?

ale*_*lex 10 php arrays sorting

我有一个数组中的文件列表,其中文件名是键,值是最后修改日期(以秒为单位).它们从最旧到最新排序.

文件是glob()'d in,然后使用这种方式排序

asort($fileNameToLastModified, SORT_NUMERIC);
Run Code Online (Sandbox Code Playgroud)

我使用array_shift()来获取最旧的文件.不幸的是,它似乎给了我价值,似乎没有办法获得关键.

这样做的唯一方法是这样的吗?

$keys = array_keys($fileNameToLastModified);

$oldest = array_shift($keys);
array_shift($fileNameToLastModified); // to manually chop the first array member off too.
Run Code Online (Sandbox Code Playgroud)

......还是有内置的方法来做到这一点?

Dec*_*ler 16

$result = array_splice( $yourArray, 0, 1 );
Run Code Online (Sandbox Code Playgroud)

......应该做的伎俩.请参见array_splice.

  • 我想你的意思是`$result = key(array_splice( $yourArray, 0, 1 ));`? (3认同)

use*_*365 5

你可以each这样使用:

$b = array(1=>2, 3=>4, 7=>3);
while(1) {
    list($key,$value) = each($b);
    if (empty($key))
        break;
    echo "$key $val\n";
}
Run Code Online (Sandbox Code Playgroud)

迭代数组each将保留其最后的位置。