我正在尝试将每个图像路径存储在数据库中。我想给每个图像加上一个带有名称的历元时间戳。让我们看看这里。
$base = 'uploads/testpic.png';
$explode = explode('.', $base);
所以如果我在这里打印r($burst),我会得到
Array
(
[0] = testpic
[1] = png
)
现在我想在这里的索引0之后插入一个新的键,它将包含time()
函数值。所以数组看起来像这样。
Array
(
[0] = testpic
[1] = 12313485 //the epoch time
[2] = png
)
稍后将再次内爆阵列,因此最终每个图像都将获得不重复的图像这样命名:uploads/testpic12313485.png
我怎样才能做到这一点?
创建一个新数组:
$newArr = [$explode[0], time(), $explode[1]];
虽然插入数组是可能的,但即使在PHP中,这也不是微不足道的。您需要向后循环遍历数组,将所有元素向上移动一个索引,直到达到插入目标。
即便如此,数字索引数组在PHP中也不是连续的,例如,您最终可能会得到以下数组:
array(3) {
[0]=>
int(1)
[2]=>
int(2)
}
这是完全正确的。
它没有回答如何在数组中间插入数组元素,但我会做这样的事情:
$parts = pathinfo($base);
$newname = $parts['filename'] . time() . $parts['extension'];
使用所提供的工具。
您可以使用substra_replace并将时间戳插入字符串中。。。
<?php
$base = 'uploads/testpic.png';
$explode = explode('.', $base);
$newstr = substr_replace($base,time(),strpos($base,"."),0);
var_dump($newstr);
?>