PHP从Assoc数组中获取字符串值并将其转换为字符串进行比较

标签 php mysql pdo

我正在尝试创建一段代码,通过使用 PDO 语句查找从数据库返回的最大值来动态设置页面上 slider 的最大值。

我遇到的问题是我无法将关联数组中返回的值转换为整数值,我做错了什么?

PDO 语句示例

       $maxHGPM = $connection->prepare("SELECT MAX(high_gpm) FROM pumps WHERE pump_type = :pType AND pump_category = :cVal");
       $maxHGPM->bindParam(':pType', $pType, PDO::PARAM_STR);
       $maxHGPM->bindParam(':cVal', $cVal, PDO::PARAM_STR);
       $maxHGPM->execute();
       $res3 = $maxHGPM->fetch(PDO::FETCH_ASSOC);


       $maxFGPM = $connection->prepare("SELECT MAX(flow_gpm) FROM pumps WHERE pump_type = :pType AND pump_category = :cVal");
       $maxFGPM->bindParam(':pType', $pType, PDO::PARAM_STR);
       $maxFGPM->bindParam(':cVal', $cVal, PDO::PARAM_STR);
       $maxFGPM->execute();
       $res4 = $maxFGPM->fetch(PDO::FETCH_ASSOC);

测试代码和整数转换

       // TEST CURRENT SET VALUES
       var_dump($res1);
       var_dump($res2);
       var_dump($res3);
       var_dump($res4);

       // INTEGER CONVERSION
       $psiA = (integer) array_keys($res1)[0];
       var_dump($psiA);

       // PERFORM LOGICAL COMPARISONS
       if(array_keys($res1)[0] >= array_keys($res2)[0]){
            $psiOut = $res1;
       } else {
            $psiOut = $res2;
       }

       if(array_keys($res3)[0] >= array_keys($res4)[0]){
            $gpmOut = $res3;
       } else {
            $gpmOut = $res4;
       }

       var_dump($psiOut);
       var_dump($gpmOut);

当代码运行时 $psiA 转储的值为 0,我是否缺少变量转换的步骤(我对 PHP 相当陌生)

最佳答案

试试这个:

$k = array_keys($res1)[0];
$psiA = (integer) $res[$k]

考虑到您的数组一次仅包含一项这一事实,这也应该适合您:

$psiA = (integer) array_shift(array_values($res1));

或者简单地说:

$psiA = reset($res1);

关于PHP从Assoc数组中获取字符串值并将其转换为字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486778/

相关文章:

java - 如何从 java.sql.timestamp 检索 mysql 时间戳列

php - 在 mysql 中编写此查询时出现问题(在论坛中标记已读消息)

php - 尽可能快地插入多行

php - PDO 在 Mysql 中插入多个复选框值

php - {"error":true ,"error_msg" :"Unknown error occurred in registration!"} during execution. .!

php - Jquery Ajax/PHP - 多次调用函数

php - css 和 js 文件被 iframe 缓存

php - 通过php执行shell命令并在浏览器中显示?

php - 将 PHP 更新为 mysql

php - 用于选择最大元素的 MySQL 查询