我有一个数组,其中有一个键和一个值。我通过循环使用一个图像文件夹生成它:
$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()