//Дан массив:
$links = [
'Google' => [
'Mail' => ['http://gmail.com', true, true],
'Adwords' => ['http://google.com/adwords', true, false],
'Adsense' => ['http://google.com/adwords', false, true]
],
'Яндекс' => [
'Метрика' => ['http://metrika.yandex.ru', false, false],
'Direct' => ['http://direct.yandex.ru', true, true]
],
'Yahoo' => ['http://yahoo.com', false, true]
];
//Необходимо вывести список:
<ul>
<li>
Google
<ul>
<li><a href="http://gmail.com" target="_blank" rel="nofollow">Mail</a></li>
<li><a href="http://google.com/adwords" target="_blank">Adwords</a></li>
<li><a href="http://google.com/adwords" rel="nofollow">Adsense</a></li>
</ul>
</li>
<li>
Яндекс
<ul>
<li><a href="http://metrika.yandex.ru">Метрика</a></li>
<li><a href="http://direct.yandex.ru" target="_blank" rel="nofollow">Direct</a></li>
</ul>
</li>
<li>
<a href="http://yahoo.com">Yahoo</a>
</li>
</ul>
Вот такая версия.
$links = [
'Google' => [
'Mail' => ['http://gmail.com', true, true],
'Adwords' => ['http://google.com/adwords', true, false],
'Adsense' => ['http://google.com/adwords', false, true]
],
'Яндекс' => [
'Метрика' => ['http://metrika.yandex.ru', false, false],
'Direct' => ['http://direct.yandex.ru', true, true]
],
'Yahoo' => ['http://yahoo.com', false, true],
'Bing' => ['https://bing.com', false, true]
];
//----------------------------------------------------------------
// Helping methods
//----------------------------------------------------------------
function attr_print($att1, $att2){
$target = $att1 ? "target='_blank'" : '';
$nofollow = $att2 ? "rel='nofollow'" : '';
return $target . " " . $nofollow;
}
// https://stackoverflow.com/a/173479
function isAssoc(array $arr)
{
if (array() === $arr) return false;
return array_keys($arr) !== range(0, count($arr) - 1);
}
//----------------------------------------------------------------
echo '<ul>';
foreach( $links as $engine_name => $services ){
$li = "<li>"; // Clear li
if(isAssoc($services)){
$li .= $engine_name . '<ul>';
foreach($services as $disc => $link){
$li .= '<li>';
$li .= '<a href="' . $link[0] . '"';
$li .= attr_print($link[1], $link[2]);
$li .= '>'; // Closing a
$li .= $disc;
$li .= '</a>';
$li .= '</li>';
}
$li .= '</ul></li>';
}else{ // Array ( [0] => http://yahoo.com [1] => false [2] => true ) regular
$li .= '<a href="' . $services[0] . '" ';
$li .= attr_print($services[1], $services[2]);
$li .= '>'; // Closing a
$li .= $engine_name;
$li .= '</a></li>';
}
echo $li;
}
Если Я правильно понимаю, то должно все выглядеть как-то вот так.
$links = [
'Google' => [
'Mail' => ['http://gmail.com', true, true],
'Adwords' => ['http://google.com/adwords', true, false],
'Adsense' => ['http://google.com/adwords', false, true]
],
'Яндекс' => [
'Метрика' => ['http://metrika.yandex.ru', false, false],
'Direct' => ['http://direct.yandex.ru', true, true]
],
'Yahoo' => ['http://yahoo.com', false, true]
];
echo "<ul>";
foreach($links as $name=>$link) {
echo "<li>";
echo "$name";
echo "<ul>";
foreach($link as $item=>$value) {
$blank = $value[1]==true ? "target='_blank'" : "";
$nofollow = $value[2]==true ? "rel='nofollow'" ? "";
echo "<li><a href='$value[0]' $blank $nofollow>$item</a></li>"
}
echo "</ul>";
echo "</li>";
}
echo "</ul>";
UPD. Забыл добавить echo для HTML элементов. Укажите версию PHP. Возможно такой вывод недоступен в вашей версии, Я перепишу под вас.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Понадобилось написать сервер на php с mysqlНашел сайт с бесплатным хостингом, создал там БД, открываю управление через phpmyadmin, которое там уже...
Всем привет! Интересует такой вопрос: Как на Php (на проекте используется Symfony 2) реализовать изменение записей в БД по определенному времени