将数组键提取为NEW变量



我有一个数组,其中有一个键和一个值。我通过循环使用一个图像文件夹生成它:

$images = array(); 
foreach (glob("images/myimages/*.{png,jpg,jpeg,JPG}", GLOB_BRACE) as $filename) {  
    $images[$filename] = filemtime($filename); 
}
arsort($images); 
$newest = array_slice($images, 0, 5);
这给了我以下数组:
images/myimages/image1.jpg => 1472497034
images/myimages/IMG_02.JPG => 2347389498
images/myimages/DSC_0066.png => 7837392948
images/myimages/fred_bloggs.jpg => 1472497034
images/myimages/IMG4532.JPG => 2347389498

我想从$ latest数组中提取每个键到一个新的变量中,这样image1.jpg变成$var1, IMG_02.JPG变成$var2等等

我有两个问题。首先,文件名需要从其中剥离"images/myimages/"路径名(并检查该文件夹中是否存在文件)。其次,我不知道如何将5个键提取到这5个新变量中。我看到的所有示例都将键提取到同名的变量中,例如http://php.net/manual/en/function.extract.php

我怎样才能做到这一点?

真的,我不明白你为什么需要那个。但是你可以这样做:

$prefix = 'var'; $count = 0;
foreach($newest as $key => $value) {
   $count++;
   ${$prefix.$count} = $key;
}
echo $var1; // 'images/myimages/image1.jpg'

您最好使用数组:

$newest = array_keys($newest);

然后访问0-4:

echo $newest[0];

获取文件名:

$newest = array_map('basename', $newest);

或者您可以在创建原始数组时使用basename()

最新更新