我试图通过循环动态生成sql
语句,但我对如何使用HTML名称阵列进行了任何想法。假设$name
和$message
是帖子数组...并且假设两者的长度都相等,则以下是我尝试的方法;
<?php
$name = array('name1','name2' );
$mess= array('message1','message2' );
$values = array($name,$mess);
foreach ($values as $key){
foreach ($key as $value){
echo $value.",";
}
}
?>
输出是=
name1,name2,Message1,Message2,
,但我希望输出为=
(Name1,Messages1),(Name2,Messages2),
编辑:我只能对$values
进行ACESS,我将无法确定在$values
中加入多少个值。 就像它可以是
$values=array($name,$message,$phone);
我想要的结果将是
(name1,message1,phone1),(name2,message2,phone2)
我的解决方案是
步骤1:循环您的$values
这将循环您数组的每个索引,例如$name
foreach($name as $index => $value) {
// do something
}
步骤2:内部的循环值以(
开头,这意味着将您的细节包裹在(
echo "(";
步骤3:循环父母数组
foreach($values as $key => $arr) {
// do something
}
步骤4:在父母数组的循环中,根据您的索引
显示每个数据echo $values[$key][$index];
$key
代表您的parent
数组的索引,而$index
表示您的孩子数组的索引,如$name
此循环将创建
之类的数据(name1,message1,phone1)
我只是添加此
if ($key < sizeof(array_keys($values))-1) {
echo ",";
}
避免在最后一个循环之后添加,
此代码将动态显示您放置在
中的数组$values
所以您的代码就像这个
$name = array('name1','name2','name3','name4' );
$mess= array('message1','message2','message3','message4' );
$phone= array('phone1','phone2','phone3','phone4' );
$married= array('yes','no','yes','yes' );
$values = array($name,$mess,$phone);
foreach($name as $index => $value) {
echo "(";
foreach($values as $key => $arr) {
echo $values[$key][$index];
if ($key < sizeof(array_keys($values))-1) {
echo ",";
}
}
echo "),";
}
demo
或此
$name = array('name1','name2','name3','name4' );
$mess= array('message1','message2','message3','message4' );
$phone= array('phone1','phone2','phone3','phone4' );
$values = array($name,$mess,$phone);
foreach($name as $index => $value) {
$join = array();
foreach($values as $key => $arr) {
$join[] = $values[$key][$index];
}
echo "(".implode(",",$join)."),";
}
demo
$name = array('name1','name2' );
$mess = array('message1','message2' );
foreach ($names as $k => $v){
echo "(".$v.",".$mess[$k]."),";
}
尝试一下,您不需要两个foreach循环,仅使用foreach循环并将键传递给其他数组并获取值
$name = array('name1','name2' );
$mess= array('message1','message2' );
$values = array($name,$mess);
foreach ($name as $keys => $vals)
{
echo "(".$vals.",".$mess[$keys]."),";
}
demo
您可以使用arrap_map()函数以加入两个数组。这是参考http://php.net/manual/en/function.array-map.php
<?php
$name = array('name1','name2' );
$mess= array('message1','message2' );
$value = array_map(null, $name, $mess);
print_r($value);
?>