首页 > 其他 > 网站日记>正文

帝国cms中多值字段的数组化和归类

提示: 阅读权限:公开  

帝国cms中,多值字段通过explode函数可以转化为数组,下面就图片模型中的多值字段示范一下转化和归类。

  1. 模拟一个多值字段的值

$navinfor['morepic']="/testdata/demopic/photo/shq/s1.jpg::::::/testdata/demopic/photo/shq/1.jpg::::::很好";
$navinfor['morepic'].=PHP_EOL."/testdata/demopic/photo/shq/s2.jpg::::::/testdata/demopic/photo/shq/2.jpg::::::不好";
$navinfor['morepic'].=PHP_EOL."/testdata/demopic/photo/shq/s3.jpg::::::/testdata/demopic/photo/shq/3.jpg::::::很好";


实际上数据表中,多值字段的多值,就是通过换行(通过帝国内置函数egetzy('rn')来取得)来间隔的,而

::::::

则是第二分隔符。用来区分每个多值中的多值。


2.转化为数组

$newarr = explode(egetzy('rn'),$navinfor['morepic']);

3.遍历这个数组,并使用第二分隔符继续分隔,最后的结果为多维数组

$tur=array();
foreach($newarr as $i=>$v)list($tur[$i]['smallpic'],$tur[$i]['bigpic'],$tur[$i]['say'])= explode("::::::", $v);

4.归类,根据图片说明say,对数组中的元素进行归类

$result = array();
foreach($tur as $k=>$v){
    $key = $v['say'];
    if(!array_key_exists($key, $result)) $result[$key] =array();
    $result[$key][]= $v;
}
print_r($result);


5.结果为


Array
(
   [很好] => Array
       (
           [0] => Array
               (
                   [say] => 很好
                   [bigpic] => /testdata/demopic/photo/shq/1.jpg
                   [smallpic] => /testdata/demopic/photo/shq/s1.jpg
               )

           [1] => Array
               (
                   [say] => 很好
                   [bigpic] => /testdata/demopic/photo/shq/3.jpg
                   [smallpic] => /testdata/demopic/photo/shq/s3.jpg
               )

       )

   [不好] => Array
       (
           [0] => Array
               (
                   [say] => 不好
                   [bigpic] => /testdata/demopic/photo/shq/2.jpg
                   [smallpic] => /testdata/demopic/photo/shq/s2.jpg
               )

       )

)


至此,整理完成,遍历新的数组

$result

就可以实现根据图片说明归类输出了。

上一篇:mysql+php判断数据表是否存在某个字段

下一篇:【帝国cms插件】之联系方式的权限查看

tags: 帝国cms 帝国 数组 图片

返回首页

相关

热门

站内直通车

[!--temp.bottomnav--]
返回顶部