$x='"CREATE TABLE MyGuests (';
for($i=0; $i<count($arr);$i++)
{
$y="`$arr[$i]` VARCHAR(30) NOT NULL";
$x.=$y.",";
}
$sql= $x.')";';
echo $sql."<br /><br />";
它会产生以下结果
CREATE TABLE MyGuests
(author VARCHAR(30) NOT NULL,
title VARCHAR(30) NOT NULL,
genre VARCHAR(30) NOT NULL,
price VARCHAR(30) NOT NULL,
publish_date VARCHAR(30) NOT NULL,
description VARCHAR(30) NOT NULL,
);
但我想在最后一次迭代中删除“NOT”之后的“,”
答案 0 :(得分:0)
$x='"CREATE TABLE MyGuests (';
for($i=0; $i<count($arr);$i++)
{
$y="`$arr[$i]` VARCHAR(30) NOT NULL";
if($i!=count($arr)-1)
$x.=$y.",";
}
$sql= $x.')";';
echo $sql."<br /><br />";
我添加条件来检查它是否是最后一个。
答案 1 :(得分:0)
尝试以下代码:
$x='"CREATE TABLE MyGuests (';
for($i=0; $i<count($arr);$i++)
{
$y="`$arr[$i]` VARCHAR(30) NOT NULL";
if($i == count($arr)-1){
$x.=$y;
} else {
$x.=$y.",";
}
}
$sql= $x.')";';
echo $sql."<br /><br />";
答案 2 :(得分:0)
你可以这样做:
$x='"CREATE TABLE MyGuests (';
for($i=0; $i<count($arr);$i++)
{
$y="`$arr[$i]` VARCHAR(30) NOT NULL";
if ($i < count($arr)-1) // check if it's the last element or not
$x.=$y.",";
else
$x=$y;
}
$sql= $x.')";';
或者这个:
$x='"CREATE TABLE MyGuests (';
for($i=0; $i<count($arr);$i++)
{
$y="`$arr[$i]` VARCHAR(30) NOT NULL";
$x.=$y.",";
}
$x = rtrim($x, ",") // remove the last comma
$sql= $x.')";';
或甚至更好,只需使用implode
将数组转换为以逗号分隔的字符串。像这样:
$x = $arr;
array_walk($x, function(&$value, $key) { $value = '`' . $value . '` VARCHAR(30) NOT NULL'; });
$sql = '"CREATE TABLE MyGuests (' . implode(',', $x) . ')";';
答案 3 :(得分:0)
以下是其他几种方式:
$x = '';
for ($i = 0; $i < count($arr); $i++)
{
$y = "`${arr[$i]}` VARCHAR(30) NOT NULL";
$x .= ($x ? '' : ',') . $y;
}
$sql = '"CREATE TABLE MyGuests (' . $x . ')";';
echo $sql . "<br /><br />";
或者:
$cols = array();
for ($i = 0; $i < count($arr); $i++)
{
$cols[] = "`${arr[$i]}` VARCHAR(30) NOT NULL";
}
$sql = '"CREATE TABLE MyGuests (' . implode(',', $cols) . ')";';
echo $sql . "<br /><br />";
答案 4 :(得分:0)
最佳解决方案在上次迭代后使用substr
$x='"CREATE TABLE MyGuests (';
for($i=0; $i<count($arr);$i++)
{
$y="`$arr[$i]` VARCHAR(30) NOT NULL";
$x.=$y.",";
}
if(!empty($arr)) {
$x = substr($x, 0, -1);
}
$sql= $x.')";';
echo $sql."<br /><br />";
或者你也可以在这样的循环中放置一个if条件
if($i+1 == count($arr)){
$x.=$y.",";
} else {
$x.=$y.",";
}
答案 5 :(得分:0)
哦,常见,5个答案和最佳解决方案是使用 subsrt ? 此
$sql = '"CREATE TABLE MyGuests (`'.implode("` VARCHAR(30) NOT NULL,`", $arr).'` VARCHAR(30) NOT NULL)";';
将在一个字符串中完全相同