我有一个php foreach循环问题。 如何能够双重循环,通过筛选,得到想匹配的东东呀。 找大师求救。。。

如何能够双重循环,通过筛选,得到想匹配的东东呀。如:array1={A,B,C,D};array2={A1,A2,C1,C2,C5,D3}理想状态是想要让它能这样分类:A... 如何能够双重循环,通过筛选,得到想匹配的东东呀。
如:array1={A,B,C,D};
array2={A1,A2,C1,C2,C5,D3}
理想状态是想要让它能这样分类:
A :A1,A2;
B;
C:C1,C2,C5;
D:D3
展开
 我来答
sphenginx
2011-11-01 · TA获得超过428个赞
知道小有建树答主
回答量:555
采纳率:50%
帮助的人:301万
展开全部
这个如果都是一维数组,你可以这么写:
<?php
$array1= array('A','B','C','D');
$array2=array('A1','A2','C1','C2','C5','D3');
foreach($array1 as $arr1){
echo $arr1.":";
$arr2_len = count($array2)-1;
foreach($array2 as $k => $arr2){
if(strpos($arr2,$arr1)!==false){
echo $arr2.",";
}else{
if($k==$arr2_len){
echo '<br/>' ;
}
}
}
}
?>
更多追问追答
追问
这个办法很好。但是,我真正的问题还不是这个。如果,array1和array2是从不同的两个表中取出的有关联的不同字段,应该怎么办呢?
如:array1是job 表,array2是company表。
现在我要列出总共有多少个公司(com),每个公司里各有什么职位(job)
并用smarty加载来展示出来。
大侠,请再考虑考虑。谢谢。
追答
你的数据表建的有问题吧.... 这个一般的做法是建数据表的时候工作表里面有公司id字段的!
而且,我好久没用过smarty了! 既然类似,就有解决办法,多动动脑~ 说不定下一秒就出来了呢~
圈圈的爸爸
2011-11-01 · 超过23用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:66.3万
展开全部
like 模糊查询试试,根据 array1的数据 在2 里面查找! 这年头,在for循环写这个高深的东西的人还真不多了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ShineYang
2011-11-01 · 超过11用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:33万
展开全部
可以这样写:
$arr1 = array('A','B','C','D');
$arr2 = array('A1','A2','C1','C2','C5','D3');
foreach($arr1 as $v){
$data = $v.":";
foreach($arr2 as $x){
if(strpos($x,$v) === 0){
$data .= $x.',';
}
}
$data = substr( $data , 0, strlen($data)-1 );
echo $data.';';
echo "</br>";
}
更多追问追答
追问
这个办法很好。但是,我真正的问题还不是这个。如果,array1和array2是从不同的两个表中取出的有关联的不同字段,应该怎么办呢?
如:array1是job 表,array2是company表。
现在我要列出总共有多少个公司(com),每个公司里各有什么职位(job)
并用smarty加载来展示出来。
大侠,请再考虑考虑。谢谢。
追答
上面那位大侠说的对啊,要是这样你就是在job里面缺了一个类是com_id的字段,你只要取出来数据smarty展示就不是问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式