- json_decode: documentation ( source)
<?php
$pages = json_decode('{
"Pages":{
"Home":"Dashboard",
"USD Market":{
"Current-Trades":"USD-Current-Trades",
"Exchange-Trades":"USD-Exchange-Trades"
}
}
}', true);
class Z
{
private $pages;
private $currentPage;
public function setConfig($currentPage, array $config)
{
$this->currentPage = $currentPage;
$this->pages = [];
$this->addToPageList($config['Pages']);
}
public function pages($linkName)
{
return $this->pages[$linkName];
}
public function addToPageList(array $pages)
{
foreach ($pages as $key => $page) {
if (is_array($page)) {
$this->addToPageList($page);
} else {
$active = ($page == $this->currentPage) ? 'active' : 'inactive';
$this->pages[$page] = $active;
}
}
}
}
$z = new Z();
$z->setConfig('USD-Exchange-Trades', $pages); // current page, page config
echo $z->pages('USD-Exchange-Trades') . "\n";
echo $z->pages('USD-Current-Trades') . "\n";
echo $z->pages('Dashboard') . "\n";