我有一个数组,其中有一个键和一个值。我通过在图像文件夹中循环来生成它:
$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
我想从$ newest数组中提取每个键到一个新变量,因此image1.jpg变为$ var1,IMG_02.JPG变为$ var2等。
我有两个问题。首先,文件名需要从中剥离“images / myimages /”路径名(并检查该文件夹中是否存在文件)。其次,我看不出如何将5个密钥提取到这5个新变量中。我看到的所有示例都将密钥提取到同名的变量中,例如http://php.net/manual/en/function.extract.php
我怎样才能做到这一点?
提前致谢。
答案 0 :(得分:2)
真的我不明白为什么你需要它。 但你可以这样做:
$prefix = 'var'; $count = 0;
foreach($newest as $key => $value) {
$count++;
${$prefix.$count} = $key;
}
echo $var1; // 'images/myimages/image1.jpg'
答案 1 :(得分:0)
使用数组会更好:
$newest = array_keys($newest);
然后访问0-4:
echo $newest[0];
获取文件名:
$newest = array_map('basename', $newest);
或者您可以在创建原始阵列时使用basename()
。