PHP 展开并排序
PHP explode and sort
我需要对展开的字符串进行排序以写入数据库。
下面的代码可以正常工作,但我无法检测到 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')");
尝试$sorted_terms = implode(';', $terms);
使用 PHP implode
,它与 explode
完全相反,专用于此类事情。
$terms = explode(";", "banana;apple;lemon");
sort($terms);
$sorted_terms = implode(";", $terms);
//$sorted_terms = "apple;banana;lemon";
编辑:
当您使用程序 MySQLi 进行数据输入时,您还应该使用 mysqli_real_escape_string
来限制 SQL 注入您的数据库。我知道它可能不适用于您当前的工作,但最好的做法是进入 - 除了实际使用 Prepared Statements。
所以:
$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms)
VALUES ('".mysqli_real_escape_string($dbcon, $sorted_terms)."')");
强烈建议改用 Prepared Statements。
简单地使用字符串连接。
在 for 循环中使用 $terms1 作为字符串。
$terms1 = "";
$terms = explode(";", "banana;apple;lemon");
sort($terms);
$length = count($terms);
for($x = 0; $x < $length; $x++) {
$terms1 .= $terms[$x].'; ';
}
//$sorted_terms = $terms[0].$terms[1].$terms[2];
//$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms) VALUES ('$sorted_terms')");
$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms) VALUES ('$terms1')");
我需要对展开的字符串进行排序以写入数据库。
下面的代码可以正常工作,但我无法检测到 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')");
尝试$sorted_terms = implode(';', $terms);
使用 PHP implode
,它与 explode
完全相反,专用于此类事情。
$terms = explode(";", "banana;apple;lemon");
sort($terms);
$sorted_terms = implode(";", $terms);
//$sorted_terms = "apple;banana;lemon";
编辑:
当您使用程序 MySQLi 进行数据输入时,您还应该使用 mysqli_real_escape_string
来限制 SQL 注入您的数据库。我知道它可能不适用于您当前的工作,但最好的做法是进入 - 除了实际使用 Prepared Statements。
所以:
$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms)
VALUES ('".mysqli_real_escape_string($dbcon, $sorted_terms)."')");
强烈建议改用 Prepared Statements。
简单地使用字符串连接。 在 for 循环中使用 $terms1 作为字符串。
$terms1 = "";
$terms = explode(";", "banana;apple;lemon");
sort($terms);
$length = count($terms);
for($x = 0; $x < $length; $x++) {
$terms1 .= $terms[$x].'; ';
}
//$sorted_terms = $terms[0].$terms[1].$terms[2];
//$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms) VALUES ('$sorted_terms')");
$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms) VALUES ('$terms1')");