【问题标题】:MYSQLi select / fetch into one arrayMYSQLi 选择/获取到一个数组
【发布时间】:2023-04-04 21:35:01
【问题描述】:

我试图将 MYSQLi 数据返回到一个数组中,但它没有变成我想要的形式。

$sql = <<<SQL
SELECT *
FROM pricee 
ORDER BY idd ASC
SQL;


if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}

while($row = $result->fetch_assoc()){
$price=$row['price'];


$tt=(array)$price;
$i=(array)$row['idd'];
$p=array_combine($i,$tt);
print_r($p);
}

这给了我以下形式的 $p

Array ( [1] => "0.99" ) Array ( [2] => "0.47" ) Array ( [3] => "0.49" ) 

但我在以下方面需要它:

Array ( [1] => 0.99 [2] => 0.47 [3] => 0.49) 

我怎样才能把它转换成那种形式?

【问题讨论】:

  • 那么你想在 PHP 中将字符串转换为浮点数并组合成一个数组?
  • 基本上我需要从数据库返回的值在一个(编号)数组中(请参见上文)

标签: php mysql arrays mysqli


【解决方案1】:

最简单:

while($row = $result->fetch_assoc()){
    $p[$row['idd']] = $row['price'];
}

不知道是不是故意的,但是如果你还显示一个字符串到浮点数的转换,那么:

    $p[$row['idd']] = (float)$row['price'];  // or use floatval()

【讨论】:

  • 谢谢,但它似乎不起作用。它以以下形式返回值: Array ( [0] => 0.49 ) Array ( [0] => 0.99 ) 但它应该只有一个 Array
  • 不,我发布的代码创建了一个数组。删除您拥有的所有代码并检查。
猜你喜欢
  • 2018-02-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 2012-08-21
  • 2014-09-27
相关资源
最近更新 更多