微信小程序中如何将一维数组按条件转换为二维数组?

微信小程序中如何将一维数组按条件转换为二维数组?,第1张

写个函数,也是来自于tp官方

function list_to_tree($list, $pk='id', $pid = 'pid', $child = '_child', $root = 0) {

// 创建Tree

$tree = array()

if(is_array($list)) {

// 创建基于主键的数组引用

$refer = array()

foreach ($list as $key =>$data) {

$refer[$data[$pk]] =&$list[$key]

}

foreach ($list as $key =>$data) {

// 判断是否存在parent

$parentId = $data[$pid]

if ($root == $parentId) {

$tree[] =&$list[$key]

}else{

if (isset($refer[$parentId])) {

$parent =&$refer[$parentId]

$parent[$child][] =&$list[$key]

}

}

}

}

return $tree

}

然后定义一维数组为$list,然后 print_r(list_to_tree($list,"id","parentsid","subnav"))

这个问题,如果条件允许,最好在后台程序中解决,在后台读取出图片路径数据后,立刻就分割为数组,然后把所有数据按json格式返回给小程序,小程序再把它放入page的data中,这样小程序无须大的改动就能显示图片了。

如果这个办法行不通,也可以在小程序获得后台返回的json数据后,先把其中的图片路径数据(即用:分隔的多个图片路径的字符串)用split分割为数组,再放入page的data中,这样小程序的wxml文件也不需要大改就能显示多个图片了。

如果实在懒得很,后台返回的数据一股脑的直接放到page的data中,那么还有最后的一种解决办法,就是在wxml文件中通过小程序自身的wxs语言实时分割路径字符串,比如(假定图片字段名为image):

<wxs module="fun"> module.exports = { imgPathSplit: function(s) { if (s) return s.split(":") } }</wxs>

然后在需要循环显示图片的地方加入代码(只是示例):

<image wx:for="{{fun.imgPathSplit(item.image)}}" wx:key="*this" mode="aspectFill" src="{{item}}"></image>

这样,在小程序渲染页面时就会实时对路径字符串进行分割,再循环显示出图片来。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11086403.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存