У меня есть код, который хранит значения в массиве. Все это работает, но я также хочу сохранить время добавления каждого значения в массив (как часть массива). В коде хранятся только уникальные значения до четырех.
function getBand() {
$band_name=$_GET['band_name'];
return $band_name;
}
$pages=$_SESSION['pages'];
if(in_array($_GET['band_name'], $pages)) {
echo"Already in Array";
} else {
if (empty($_SESSION['pages']))
$_SESSION['pages'] = array();
$_SESSION['pages'][] = getBand();
$_SESSION['pages'] = array_slice($_SESSION['pages'], -4);
}
Используйте time()
чтобы получить время. И сохраните это в нужном массиве.
array_push ($array, time ());
Поскольку вы говорите о "времени, когда они добавляются в массив", возможно, вы имеете в виду микросекунды, которые в этом случае используют microtime()
Обратите внимание, что обе функции не возвращают отформатированную метку времени, вместо этого они возвращают целое число.
Больше time()
здесь
Подробнее о microtime()
здесь
Возможно, что-то подобное могло бы сделать работу:
$test = "Metallica";
$test2 = "The Black Keys";
$arr['pages'][$test] = $test;
$arr['pages'][$test] = date("D M d, Y G:i");
$arr['pages'][$test2] = $test;
$arr['pages'][$test2] = date("D M d, Y G:i");
echo '<pre>'.print_r($arr, true).'</pre>';
В формате даты вы можете увидеть - http://php.net/manual/bg/function.date.php
ура
class SessionManager
{
protected static $pages = null;
protected static $maxPages = 4;
public function __construct($session) {
self::$pages = $session['pages'];
}
public static function addPage($pageName) {
self::$pages[$pageName] = array(
'name' => $pageName,
'created' => date('Y-m-d h:i:s')
);
self::$pages = array_slice(self::$pages, -1 * $maxPages);
}
public static function writeSession(&$session) {
$session['pages'] = self::$pages;
}
public static function getPages() {
return self::$pages;
}
}
session_start();
$session = new SessionManager($_SESSION);
$session->addPage($_GET['band_name']);
$session->writeSession($_SESSION);
print_pre($session->getPages());
array_push()
но эта функция добавляет его в массив, вы должны добавить время в массив именно там, где вам это нужно. Вы всегда можете прочитать оarray_push()
здесь