为什么我在这个echo和div类中尝试print_r它会返回患者欠1?
$balance_out = sql::results("SELECT CODE,BALANCE FROM event.acs.ptbalance() WHERE CODE='$patient_id' and BALANCE > 0");
echo "<div class='patient_alert red'>Patient owes ".print_r($balance_out)."</div>";
但是如果我只是像这样print_r它会正确地给我数组。
echo "<pre>"; print_r ($balance_out); echo "</pre>";
像这样:
Array
(
[0] => Array
(
[CODE] => ACSSCHAR00
[BALANCE] => 24.33
)
)
非常感谢任何帮助。我必须确定我想要的数组键值吗?
答案 0 :(得分:2)
不要假设函数如何工作;只需检查the manual:
混合print_r(mixed $ expression [,bool $ return = false])
[...]
返回值
[...]
当return参数为TRUE时,此函数将返回一个字符串。否则,返回值为TRUE 。
因此,如果您希望print_r()返回值而不是打印它,请相应地使用第二个参数:
echo "<div class='patient_alert red'>Patient owes ".print_r($balance_out, true)."</div>";
^^^^
答案 1 :(得分:1)
除非您传递print_r
true
连接到您正在尝试的字符串中
例如
print_r($balance_out, true);
否则返回true,由字符串解释为1
但是,如果要将患者平衡插入HTML输出
,则可能需要执行此类操作 "<div class='patient_alert red'>Patient owes ".$balance_out[0]['BALANCE']."</div>";