PHP爆炸和排序

时间:2018-05-29 10:35:35

标签: php sorting explode

我需要对一个爆炸的字符串进行排序以写入数据库。

下面的代码可以正常工作,但是我无法检测到foreach循环之外的数组摘要。

所以$terms[0].$terms[1].$terms[2]不正确。

因为示例$terms[0].$terms[1].$terms[2].$terms[3]是字符串中4个术语所必需的。

怎么可以解决?

$terms = explode(";", "banana;apple;lemon");

sort($terms);

$length = count($terms);

for($x = 0; $x < $length; $x++) {

$terms[$x] = $terms[$x].'; ';
}

$sorted_terms = $terms[0].$terms[1].$terms[2]; // <<< should changed dynamically

$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms) VALUES ('$sorted_terms')");

3 个答案:

答案 0 :(得分:2)

使用与explode完全相反的PHP implode,仅用于此类事情。

$terms = explode(";", "banana;apple;lemon");
sort($terms);
$sorted_terms = implode(";", $terms);

//$sorted_terms = "apple;banana;lemon";

编辑:

当您使用过程MySQLi进行数据输入时,您还应该使用mysqli_real_escape_string将SQL注入限制在数据库中。我知道它可能不适用于您当前的工作,但它是最佳实践 - 没有实际使用准备好的陈述。

这样:

$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms) 
       VALUES ('".mysqli_real_escape_string($dbcon, $sorted_terms)."')");

非常强烈建议使用Prepared Statements

答案 1 :(得分:1)

只需使用字符串连接即可。 在for循环中使用$ terms1作为字符串。

isPrime = false;

答案 2 :(得分:0)

尝试$sorted_terms = implode(';', $terms);

http://php.net/manual/en/function.implode.php