php - 将 mysql 结果放入一个 php 数组中,像这样吗?

标签 php mysql arrays

要获得这样的数组 array("123","456","789"); 我使用以下代码:

$Regids = mysql_query("SELECT regid FROM $tabel WHERE active = '1'");
while($row = mysql_fetch_array($Regids))
{
    $result_array[] = "\"".$row['regid']."\"";
}
$regIDs = implode(',', $result_array);
$registrationIDs = array($regIDs); // array("123","456","789");

但我希望 PHP/mySQL 有一个更简单/更快的解决方案?

最佳答案

我怀疑您的代码是否会产生您想要的结果。

// assuming the this query produces 123,456,789
$Regids = mysql_query("SELECT regid FROM $tabel WHERE active = '1'");
// $row contains: array("123")
while($row = mysql_fetch_array($Regids))
{
    $result_array[] = "\"".$row['regid']."\"";
}
// $result_array now contains: array("\"123\"", "\"456\"", "\"798\"");
$regIDs = implode(',', $result_array);
// $regIDS now contains a single string: "\"123\",\"456\",\"798\"";
$registrationIDs = array($regIDs);
// registrationIDs now is an array containing a single string: array("\"123\",\"456\",\"798\"");

如果您确实需要一个如下所示的数组:array("123","456","789");,则要简单得多。

$Regids = mysql_query("SELECT regid FROM $tabel WHERE active = '1'");
while($row = mysql_fetch_array($Regids))
    $registrationIDs[] = $row['regid'];

仅此而已。

如果你的 mysql 结果包含整数形式的数字而不是字符串,你可以像这样转换它:

$Regids = mysql_query("SELECT regid FROM $tabel WHERE active = '1'");
while($row = mysql_fetch_array($Regids))
    $registrationIDs[] = strval($row['regid']);

此外,请记住 mysql_* 函数已被弃用。不要用它开始新代码并计划将现有代码移植到 mysqli_* 或 PDO。

关于php - 将 mysql 结果放入一个 php 数组中,像这样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20312681/

相关文章:

mysql - 将 mysql utc_timestamp 舍入到下一个五分钟 block

PHP分隔字符串的各个部分

php - 炸开空行

mysql - 从员工错误中选择 employee_name, count(dependent) as dependents

MYSQL 更新嵌套子查询

C++ 指向另一个类的动态指针数组

python - 如何将数组的数组转换为简单数组?

javascript - 如何使用 DashboardController 和 js 将 Id 从一个表获取到另一个表

php - 对 PHP 数组进行排序,但对其中的对象进行排序

c - c中表格内的不同颜色