52 lines
1.1 KiB
PHP
52 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App;
|
|
|
|
use DateTime;
|
|
|
|
class Helpers
|
|
{
|
|
|
|
/**
|
|
* Credit: https://www.php.net/manual/en/function.checkdate.php#113205
|
|
** @return bool
|
|
*/
|
|
static function dateValid($date, $format = 'Y-m-d')
|
|
{
|
|
$d = DateTime::createFromFormat($format, $date);
|
|
return $d && $d->format($format) == $date;
|
|
}
|
|
/**
|
|
* @return array
|
|
*/
|
|
static function buildTree(array $elements, string $parentId): array
|
|
{
|
|
|
|
$branch = [];
|
|
|
|
foreach ($elements as $key => $el) {
|
|
if($el['ark_parent']['value'] === $parentId){
|
|
$el['name'] = $el['name_child']['value'];
|
|
$el['ark'] = $el['ark_child']['value'];
|
|
|
|
$children = self::buildTree($elements, $el['ark_child']['value']);
|
|
if($children){
|
|
$el['children'] = $children;
|
|
}else{
|
|
$el['value'] = 1;
|
|
}
|
|
|
|
unset($el['ark_child'], $el['ark_parent'], $el['name_child']);
|
|
|
|
$branch[] = $el;
|
|
}
|
|
}
|
|
|
|
return $branch;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|