【问题标题】:Get results from mysql query into an integer array?将mysql查询的结果获取到整数数组中?
【发布时间】:2011-05-04 14:42:54
【问题描述】:

我正在使用php嵌入的mysql查询如下:

$query_sample = mysql_query(" 
SELECT left FROM sampleTable WHERE right  = 1 
UNION 
SELECT right FROM sampleTable WHERE left  = 1 
");

其中“右”和“左”列都是整数。

执行此查询后,我希望将结果集分配到 php.ini 中的整数数组中。 有没有有效的方法将查询结果转换成整数数组??

问题:

我基本上希望能够在将查询的结果集分配给 $results_array 并且 $x 是任何整数之后提出问题:“$x 在 $results_array 中”。

任何帮助感谢大家......

【问题讨论】:

  • 如果xsampleTable 中的一列,您应该使用SQL 执行此操作。
  • 请不要在问题标题中写标签。
  • @Jason $x 不是 sampleTable 中的列,它只是测试 $x 是否在结果集中。
  • 如果在结果集中,是不是就在表中?
  • 我还是一头雾水……让我重新表述一下 - 如果 x 是一个可以针对 sampleTable 中的列进行测试的值,那么您应该使用 SQL 来执行此操作。

标签: php mysql


【解决方案1】:

您遍历结果并构建数组。

如果您确实需要整数形式的结果,只需将其传递给intval。接下来是一个快速的 sn-p。

$query_sample = mysql_query(" 
SELECT left FROM sampleTable WHERE right  = 1 
UNION 
SELECT right FROM sampleTable WHERE left  = 1 
");
$result = array();
while($r = mysql_fetch_array($query_sample, MYSQL_NUM)){
    $result[] = intval($r[0]);
}

var_dump($result);

编辑:对不起。我把事情搞砸了。刚刚更正了。


我基本上希望能够问 问题:“$results_array 中有 $x”

使用 MySQL 来实现!它针对快速执行此类操作进行了优化。特别是如果您正确设置了索引。

【讨论】:

    【解决方案2】:

    php 是一种松散类型的语言,所以一般来说,它 真的 是“10”还是 10 并不重要。如果你愿意,php 会正确地将它评估为整数 p>

    $x = "10";
    $y = $x * 10; // assigns 100
    

    ..但如果你真的想知道它是否可以是一个整数,你可以使用is_int()

    或者如果你想专门类型转换它,你可以这样做

    $x = intval($x);
    

    $x = (int) $x;
    

    编辑:(回复下方评论)

    re: "将结果放入数组"

    当您执行查询时,您会得到一个返回的结果source。为了将返回的数据放入数组中,您需要遍历结果源并分配给数组。示例:

    $result = mysql_query($querystring);
    while ($row = mysql_fetch_assoc($result)) {
      $array[] = $row['columnname'];
    }
    

    【讨论】:

    • 我更关心问题的第一部分,它涉及从查询中获取结果集到一个数组中。有什么建议吗?
    • @Tomalak:不,正确的问题..听起来他担心结果是字符串而不是 int,所以我对此做出了回应。
    猜你喜欢
    • 2011-03-31
    • 2014-02-03
    • 2012-02-16
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 2016-10-29
    相关资源
    最近更新 更多