【发布时间】:2017-05-29 22:03:27
【问题描述】:
我有一个可以是任意维度的动态多维数组,这里是一个示例:
$array_serial = 'a:2:{i:0;a:2:{s:2:"id";a:4:{s:3:"url";s:27:"products.php?la=电子产品";s:6:"otitle";s:11:"电子产品";s:6:"utitle";s:11:"电子产品";s:4:"ttip";s:11:"电子产品" ;}s:8:"儿童";a:2:{i:0;a:2:{s:2:"id";a:4:{s:3:"url";s:51:" products.php?la=electronics&lb=Computer-Peripherals";s:6:"otitle";s:20:"Computer Peripherals";s:6:"utitle";s:20:"Computer Peripherals";s:4 :"ttip";s:34:"电子学:计算机外围设备";}s:8:"children";a:1:{i:0;a:2:{s:2:"id";a:4 :{s:3:"url";s:63:"products.php?la=electronics&lb=Computer-Peripherals&lc=Printers";s:6:"otitle";s:8:"Printers";s:6: "utitle";s:8:"打印机";s:4:"ttip";s:45:"电子产品:计算机外围设备:打印机";}s:8:"children";a:1:{i:0 ;a:1:{s:2:"id";a:4:{s:3:"url";s:90:"products.php?la=electronics&lb=Computer-Peripherals&lc=Printers&ld=Single-Function-打印机";s:6:"otitle";s:23:"单功能打印机";s:6:"utitle";s:23:"单功能打印机";s:4:"ttip";s:71 :“电子:计算机外围设备:打印机:单功能公关inter";}}}}}}i:1;a:1:{s:2:"id";a:4:{s:3:"url";s:38:"products.php?la=电子&lb=Mobiles";s:6:"otitle";s:7:"Mobiles";s:6:"utitle";s:7:"Mobiles";s:4:"ttip";s:21:"电子产品:手机";}}}}i:1;a:2:{s:2:"id";a:4:{s:3:"url";s:31:"products.php?la= homenfurnitures";s:6:"otitle";s:19:"家居和家具";s:6:"utitle";s:19:"家居和家具";s:4:"ttip";s:19 :"家居和家具";}s:8:"儿童";a:2:{i:0;a:1:{s:2:"id";a:4:{s:3:"url" ;s:9:"about.php";s:6:"otitle";s:8:"关于我们";s:6:"utitle";s:8:"关于我们";s:4:" ttip";s:8:"关于我们";}}i:1;a:2:{s:2:"id";a:4:{s:3:"url";s:40:"产品.php?la=homenfurnitures&lb=Other";s:6:"otitle";s:5:"Other";s:6:"utitle";s:5:"Other";s:4:"ttip"; s:27:"家居和家具:其他";}s:8:"儿童";a:1:{i:0;a:2:{s:2:"id";a:4:{s: 3:"url";s:51:"products.php?la=homenfurnitures&lb=Lights-AnD-Lamps";s:6:"otitle";s:14:"Lights & Lamps";s:6:"utitle ";s:14:"灯和灯";s:4:"ttip";s:36:"家居和家具:灯和灯";}s:8:"儿童";a:2:{i: 0;a:1:{s:2:"id";a:4:{s:3:"ur l";s:12:"contacts.php";s:6:"otitle";s:10:"联系我们";s:6:"utitle";s:10:"联系我们";s:4 :"ttip";s:10:"联系我们";}}i:1;a:2:{s:2:"id";a:4:{s:3:"url";s:58: "products.php?la=homenfurnitures&lb=Dinnerware-AnD-Crockery";s:6:"otitle";s:21:"Dinnerware & Crockery";s:6:"utitle";s:21:"Dinnerware & Crockery ";s:4:"ttip";s:43:"家居和家具:餐具和陶器";}s:8:"儿童";a:1:{i:0;a:1:{s:2 :"id";a:4:{s:3:"url";s:78:"products.php?la=homenfurnitures&lb=Dinnerware-AnD-Crockery&lc=Cups-AnD-Saucers";s:6:"otitle ";s:14:"Cups & Saucers";s:6:"utitle";s:14:"Cups & Saucers";s:4:"ttip";s:60:"家居和家具:餐具和陶器: 杯子和碟子";}}}}}}}}}}';这个数组的所有索引“otitle”都会以输入类型文本的形式显示出来,用户可以根据自己的需要修改这个Title。我怎样才能以干净的方式实现这一目标?
这只是数组的一部分,实际的数组可以更大。
这是我的code to view "otitle" in a input type
function get_menu_list($selected_menus)
{
if($selected_menus != null){
foreach($selected_menus as $menu_level_1)
{
$title = implode("///",$menu_level_1['id']);
echo '
<li class="dd-item">
<div class="dd-handle">
<input type="text" name="otitle[]" value="'.$menu_level_1['id']['otitle'].'" />
</div>
';
if(isset($menu_level_1['children']))
{
echo '<ol class="dd-list">';
foreach($menu_level_1['children'] as $menu_level_2)
{
$title_level_2 = implode("///",$menu_level_2['id']);
echo '
<li class="dd-item">
<div class="dd-handle">
<input type="text" name="otitle[]" value="'.$menu_level_2['id']['otitle'].'" />
</div>
';
if(isset($menu_level_2['children']))
{
echo '<ol class="dd-list">';
foreach($menu_level_2['children'] as $menu_level_3)
{
$title_level_3 = implode("///",$menu_level_3['id']);
echo '
<li class="dd-item">
<div class="dd-handle">
<input type="text" name="otitle[]" value="'.$menu_level_3['id']['otitle'].'" />
</div>
';
if(isset($menu_level_3['children']))
{
echo '<ol class="dd-list">';
foreach($menu_level_3['children'] as $menu_level_4)
{
$title_level_4 = implode("///",$menu_level_4['id']);
echo '
<li class="dd-item">
<div class="dd-handle">
<input type="text" name="otitle[]" value="'.$menu_level_4['id']['otitle'].'" />
</div>
';
if(isset($menu_level_4['children']))
{
echo '<ol class="dd-list">';
foreach($menu_level_4['children'] as $menu_level_5)
{
$title_level_5 = implode("///",$menu_level_5['id']);
echo '
<li class="dd-item">
<div class="dd-handle">
<input type="text" name="otitle[]" value="'.$menu_level_5['id']['otitle'].'" />
</div>
</li>
';
}
echo "</ol>";
}
echo '</li>';
}
echo "</ol>";
}
echo '</li>';
}
echo "</ol>";
}
echo '</li>';
}
echo '</ol>';
}
echo '</li>';
}
}//end if
else
return null;
}
$array_unserial = unserialize($array_serial);
echo get_menu_list($array_unserial);
【问题讨论】:
-
随机问题:为什么您的数组开始序列化?
-
@Jhecht,这只是将其放入变量中。我如何放置一个打印数组供任何人复制并在变量中使用它。正如我提到的,数组是动态的,它来自数据库。
-
您在数据库中存储了一个序列化数组?
-
那我应该如何在我的数据库中放一个数组..!!
-
这真的取决于你在做什么。根据我所看到的,这些是嵌套类别,它们可以存储在带有
cat_id, parent_id, category_name列的单独表中,或者,根据您正在运行的版本或数据库,您可以只在数据库中为该列使用 JSON 数据类型.实际上,这是一个不同的问题。
标签: php arrays multidimensional-array