ThinkPHP5.1模板函数取出是数组,该怎么取出数组的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP5.1模板函数取出是数组,该怎么取出数组的值相关的知识,希望对你有一定的参考价值。
例如$Think.session.user_id|getUser 取出是一个二维数组 要怎样获取数组中的username值,有什么办法,急求!!!!!
参考技术A TP返回模板的数组。可以直接用大括号以php代码形式输出。比如。控制器返回$this->assign('list',$list);
$data是一个二维数组的话就直接在模板文件$list.键就可以输出对应的值了。
view返回的话也一样。返回的值用一个二维数组也就跟多个$this->assign是一样的了。
输出模板的标签有很多个的。TP的帮助文档在看云。可以自己去看看的。
欢迎追问 参考技术B
如果是复杂的运算,例如是你提问里面的二维数组,个人建议就不要放在模板语法中处理了,直接在后台代码处理好再传过来吧
参考技术C $Think.session.user_id|getUser这段代码的是 调用
如你所说返回了一个二维数组,
那么你可以重新再定义一个方法
getUserName(getUser($Think['session']['user_id']))
在二维数组里面遍历出 username不就好了,
getUserName再封装一层
在模版里面处理数组比较复杂,建议在model中处理完了,assign过来
如果是,可以使用<?php echo session('name','','作用域'); ?> 第5个回答 2019-03-21
1.最好是把用户资料注册到数据表里
$this->assign('user',getUser(session('user_id')));//然后在模板文件调用
$user['username']
2.或者直接用函数调用的方法[不推荐]
3.或者用php标签
<div>$user['username']</div>
CString 取字符串
比如我有一个CString A;
A为1,abc,ddd,aaa,c,b
我怎么根据第几个逗号来取出字符串。
比如我想一个一个取出来保存。怎么比较好
用2个FIND好像比较麻烦
请指教。
我不想分割成数组,因为长度并不是固定的。动态申请内存弊端很大。
把我举出的例子做出来就行。比如我就想取出第3个逗号后的数据。
我是做C的,CString不熟悉。
在线等
//通过“,”分割提取字符串
//参数str:被提取的字符串
//参数strArray:提取后的字符串放到这个动态数组中
//返回值:提取出的字符串个数
int ExtString(CString str, CStringArray &strArray)
CString strTemp;
int nCount = 0;
strArray.RemoveAll();
while(str.Find(_T(",")) != -1)//查找字符串中是否有“,”出现
strTemp = str.Left(str.Find(_T(",")));//提取字符串
str = str.Right(str.GetLength() - str.Find(_T(","))-2);//剩下的字符串
strArray.Add(strTemp);//提取出的字符加入动态数组
nCount++;
//最后一个字符串
if(str.GetLength()>0)
strArray.Add(str);//提取出的字符加入动态数组
nCount++;
return nCount;
//这样使用:
CString A = _T("1,abc,ddd,aaa,c,b");
CStringArray strArray; //这是一个动态字符串数组
int n = ExtString(A,strArray);
for(int i=0; i<n; i++)
//显示出所以字符串
CString str;
str.Format("字符串%d", i+1);
MessageBox(strArray[i],str);
有问题可以百度HI上找我。 参考技术A .........写个算法,把CString分割成数组
按数组下标来取,多爽,以后还可重复利用这算法 参考技术B 按“,”把它变成数组 参考技术C AfxExtractSubString自己去查
以上是关于ThinkPHP5.1模板函数取出是数组,该怎么取出数组的值的主要内容,如果未能解决你的问题,请参考以下文章