php 多个长度不等的数组嵌套循环,连接字符串

junchen168168 2012-08-06 11:15:45
$arra = array('aaa','bbb','ccc');
$arrb = array('LIKE','NEQUAL','EQUAL');

该数组当取得的名称是同一个name:
$arrc = array('val1','val2','val3');
该数组若是取得的名称是两个不同的name:
$arrc = array('val1','val2');
$arrd = array('val3');

$arrl = array('AND','OR');

先要得到如下格式:
aaa LIKE val1 AND bbb NEQUAL val2 OR ccc EQUAL val3

请大神赐教
...全文
322 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
junchen168168 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

期望的样式 aaa LIKE val1 AND bbb NEQUAL val2 OR ccc EQUAL val3
这应该是一个条件表达式吧?
对应关系
变量 比较方式 值 与下一式的关系
表单
<input type=text name=a[]>
<input type=text name=b[]>
<input type=text name=c[]>
<input type=……
[/Quote]
这样我是知道的,但是数组长度不相等的啊!
xuzuning 2012-08-06
  • 打赏
  • 举报
回复
期望的样式 aaa LIKE val1 AND bbb NEQUAL val2 OR ccc EQUAL val3
这应该是一个条件表达式吧?
对应关系
变量 比较方式 值 与下一式的关系
表单
<input type=text name=a[]>
<input type=text name=b[]>
<input type=text name=c[]>
<input type=text name=d[]>
....

php
foreach($_POST['a'] as $i=>$v) {
$r[] = $v . $_POST['b'][$i] . $_POST['c'][$i] . $_POST['d'][$i];
}
echo join('', $r);

franzhong 2012-08-06
  • 打赏
  • 举报
回复
你没明白我的意思吧,我是想帮你解决数组长度不相等的问题
你把val3加上去就相等了
junchen168168 2012-08-06
  • 打赏
  • 举报
回复
你没有注意到数组长度不等的情况吗?首先循环会出现数组越界的问题!
然后在这里:
可能是
$arrc = array('val1','val2');
$arrd = array('val3');
也可能是这样:
$arrc = array('val1','val2','val3');
你没有看清题意吧!
franzhong 2012-08-06
  • 打赏
  • 举报
回复
我觉得在这种情况下,不如array_push($arrc,val3);
也添加到$arrc内,但是在后面,意思就是以input顺序来定的一个有序数组来区分
还是情况一,处理更容易,你看看有啥不能满足的地方没
这样更规整,foreach 第一个,同时引入一个i对其他数组一起操作组合更方便
要是有不能满足的地方给我讲个反例?
junchen168168 2012-08-06
  • 打赏
  • 举报
回复
比如我从表单传递过来的name是key[],
例如
<input type='text' name='key[]' />
<input type='text' name='key[]' />
<input type='text' name='key[]' />
那么这个数组就是$arrc = array('val1','val2','val3');
如果我有一个input是key另外两个input是demo[],
例如
<input type='text' name='key[]' />
<input type='text' name='demo[]' />
<input type='text' name='demp[]' />
那么这就不是一个数组而是两个了:
$arrc = array('val1','val2');
$arrd = array('val3');
franzhong 2012-08-06
  • 打赏
  • 举报
回复
把这个再解释一下
该数组若是取得的名称是两个不同的name:
$arrc = array('val1','val2');
$arrd = array('val3');

"该"数组取得"两个"不同的name,举个例子?
看你想要的格式,完全不用这两个c和d
junchen168168 2012-08-06
  • 打赏
  • 举报
回复
可能是我说的不清楚,你没有明白我的意思!
xuzuning 2012-08-06
  • 打赏
  • 举报
回复
我无语了

无论一个文本框可能有多少个值,实际被填写的只能是一个值
junchen168168 2012-08-06
  • 打赏
  • 举报
回复
$arrl = array('AND','OR');这个就只有2个值
xuzuning 2012-08-06
  • 打赏
  • 举报
回复
为什么不等???
你就不能让他们相等吗?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧