Deprecated: Return type of YDataTable::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/bdavid/prod/georef/yamldoc/ydclasses/ydata.inc.php on line 428
Deprecated: Return type of YamlDataTable::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/bdavid/prod/georef/yamldoc/ydclasses/yamldata.inc.php on line 295
yaml pub]
referer externe
Code source Php de jregdept
<?php
/*PhpDoc:
title: jointure geohisto/regions X geohisto/departements suivie d'un nest
*/
// Seul l'utilisateur benoit a le droit de modifier le code
if (isset($ydcheckWriteAccessForPhpCode))
return ['benoit'];
require_once __DIR__.'/../inc.php';
//require_once __DIR__.'/../ydclasses.inc.php';
// initialisation du résultat
$result = [];
// ouverture des 2 documents regions et departements
if (!($regions = new_doc('geohisto/regions')))
die("Erreur d'ouverture de regions");
if (!($depts = new_doc('geohisto/departements')))
die("Erreur d'ouverture de departements");
// itération sur les régions
foreach ($regions->extract('/data') as $region) {
if (isset($region['successors'])) // si successors est défini, la région est périmée
continue;
// itération sur les départements
foreach ($depts->extract('/data') as $dept) {
if (isset($dept['successors'])) // si successors est défini, le département est périmé
continue;
// test si la région est un des parents du département
if (isset($dept['parents']) && in_array($region['id'], $dept['parents'])) {
// si oui alors ajout dans les résultats
$result[] = [
'rcode'=> $region['insee_code'], 'rname'=> $region['name'],
'insee_code'=> $dept['insee_code'], 'name'=> $dept['name']
];
}
}
}
// Renvoi du résultat en y ajoutant le titre du document
return [
'title'=> "jointure geohisto/regions X geohisto/departements suivie d'un regroupement des départements par région",
// restructuration pour regrouper les départements par région et renommer les champs de région
'data'=> YamlDoc::nest($result, ['rcode'=>'insee_code','rname'=>'name'], 'depts'),
];