Преобразование массива в новый массив для соответствия шаблону

У меня есть старый файл. Я хотел бы интегрировать его в новый шаблон, который я купил.

У меня есть список ссылок. Я храню их в массиве Session.
Массив имеет заголовок и URL для каждого


<?php session_start();
//in my old file i write this

foreach ($_SESSION[links] as $value){
?>
<a href="<?php print $value[linkurl]?>"><?php print $value[linktitle]?></a ><?php
}

//  array style i need to match in the new file

//  "name" => array(
//      "title" => "Display Title",
//      "url" => "http://yoururl.com"//      )

// what i tried

//  foreach ($_SESSION[links] as $value){
//      "$value[linktitle]" => array(
//          "title" => "$value[linktitle]",
//          "url" => "$value[linkurl]"//      )
//  }

//obviously doesn't work
?>

Вот полный шаблон. Я пытаюсь заменить саб Smart UI (карусель, вкладка …)

<?php

//CONFIGURATION for SmartAdmin UI

//ribbon breadcrumbs config
//array("Display Name" => "URL");
$breadcrumbs = array(
"Home" => APP_URL
);

/*navigation array config

ex:
"dashboard" => array(
"title" => "Display Title",
"url" => "http://yoururl.com",
"url_target" => "_self",
"icon" => "fa-home",
"label_htm" => "<span>Add your custom label/badge html here</span>",
"sub" => array() //contains array of sub items with the same format as the parent
)

*/
$page_nav = array(
"dashboard" => array(
"title" => "Dashboard",
"url" => APP_URL,
),
"smartui" => array(
"title" => "Smart UI",
"icon" => "fa-code",
"sub" => array(

"carousel" => array(
"title" => "Carousel",
"url" => APP_URL.'/smartui-carousel.php'
),
"tab" => array(
"title" => "Tab",
"url" => APP_URL.'/smartui-tab.php'
),
"accordion" => array(
"title" => "Accordion",
"url" => APP_URL.'/smartui-accordion.php'
),
"widget" => array(
'title' => "Widget",
'url' => APP_URL."/smartui-widget.php"),
"datatable" => array(
"title" => "DataTable",
"url" => APP_URL."/smartui-datatable.php"),
"button" => array(
"title" => "Button",
"url" => APP_URL."/smartui-button.php"),
'smartform' => array(
'title' => 'Smart Form',
'url' => APP_URL.'/smartui-form.php'
)
)
)

);

//configuration variables
$page_title = "";
$page_css = array();
$no_main_header = false; //set true for lock.php and login.php
$page_body_prop = array(); //optional properties for <body>
$page_html_prop = array(); //optional properties for <html>
?>

var_dump:

array(6) {
[0]=> array(4) { ["linktitle"]=> string(13) "Claims Center" ["linkurl"]=> string(79) "Claims.php" ["Sectionlinktitle"]=> string(12) "Applications" ["linkdes"]=> string(11) "Application" }
[1]=> array(4) { ["linktitle"]=> string(16) "Expense Allocate" ["linkurl"]=> string(81) "Expense.php" ["Sectionlinktitle"]=> string(12) "Applications" ["linkdes"]=> string(11) "Application" }
[2]=> array(4) { ["linktitle"]=> string(13) "Freight Rater" ["linkurl"]=> string(105) "User.php" ["Sectionlinktitle"]=> string(12) "Applications" ["linkdes"]=> string(11) "Application" }
[3]=> array(4) { ["linktitle"]=> string(14) "Invoice Center" ["linkurl"]=> string(71) "Online.php" ["Sectionlinktitle"]=> string(12) "Applications" ["linkdes"]=> string(11) "Application" }
[4]=> array(4) { ["linktitle"]=> string(4) "KPIs" ["linkurl"]=> string(4) "KPIs" ["Sectionlinktitle"]=> string(10) "Dashboards" ["linkdes"]=> string(9) "Dashboard" }
[5]=> array(4) { ["linktitle"]=> string(16) "Multi-Mode Rater" ["linkurl"]=> string(0) "M" ["Sectionlinktitle"]=> string(12) "Applications" ["linkdes"]=> string(16) "Multi-Mode Rater" }
}

0

Решение

Вы хотите добавить навигацию в $ _SESSION [‘links’] к новому шаблону!

Закомментируйте $page_nav переменная (/* $page_nav = array( ... ); */) в шаблоне. Это сгенерирует код для вставки в шаблон (вырезать и вставить):

$a = $_SESSION['links'];
echo '<pre>$page_nav = array(' . "\n";
foreach( $a as $k=>$v ) {
echo "\t'" . strtolower(str_replace(' ','',$v['linktitle'])) . "' => array(\n". "\t\t'title' => '" . $v['linktitle'] . "',\n". "\t\t'url' => '" . $v['linkurl'] . "'\n". "\t),\n";
}
echo ');</pre>';

Если вы хотите сохранить код в переменной $ _SESSION (на самом деле, это не очень хорошая идея), поместите этот фрагмент кода на место:

$page_nav = array();
foreach ( $_SESSION['links'] as $k=>$v ) {
$page_nav[strtolower(str_replace(' ','',$v['linktitle']))] = array(
'title' => $v['linktitle'],
'url'   => $v['linkurl']
);
}

Я думаю, что это должно работать! Я не рассматривал ни одного подменю, так как ни одного не было в вашем var_dump!

1

Другие решения

Вам нужно создать новый массив:

$page_nav = array();
foreach ($_SESSION[links] as $value) {
$page_nav[][$value['linktitle']] = array(
'title' => $value['linktitle'],
'url'   => $value['linkurl']
)
}

Теперь у вас должно быть все в новом массиве $ var;

1

По вопросам рекламы [email protected]