Как я могу сортировать PHP-глобусы по переменным внутри их элементов? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть набор файлов в определенном каталоге. Эти файлы являются файлами PHP с определениями переменных. В этих файлах есть пользовательская переменная date. Эти даты не совпадают с датами, когда был создан файл PHP, скорее это произвольная дата. Я не уверен, как отсортировать глобус на основе этих переменных.

До сих пор мне не удавалось создать успешную функцию сравнения или использовать ksort или аналогичные функции для сортировки глобуса на основе переменных внутри него.

Содержимое стандартного элемента, найденного глобусом, будет выглядеть следующим образом:

<?php
$title = 'Example Title';
$info = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.';
$time = mktime(22,19,46,10,14,2019); //THIS IS WHAT I WOULD LIKE TO SORT BY
$datestring = date("d F, Y H:i",$time);
?>

Я бы предположил, что смогу отсортировать данную переменную из каждого элемента глобуса (дляНапример, переменная 'time' для каждого файла в глобусе), но я не смог найти функцию сортировки, чтобы разрешить это. Любой вид, который я обнаружил, сортировал ключи в массиве, но сами эти файлы не являются массивами, поэтому они были несовместимы.

1 Ответ

0 голосов
/ 21 октября 2019

Вам нужна переменная $ time из каждого файла. Поэтому вы должны включить каждый файл в цикл с помощью include, include_once здесь неправильный.

$files = glob("yourpath/*.php");
$array = array();
foreach($files as $file){
  include $file;
  $array[$time] = $file;
}
ksort($array);

Примечание:

Этот простой вариант с ksort работает, только если в каждом файле содержится разная информация о времени $.

Может быть, лучше

$files = glob("yourpath/*.php");
$array = array();
foreach($files as $key => $file){
  include $file;
  $array[$file] = $time;
}
asort($array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...