我不知道为什么,但一些空白值仍然会过滤我的if
语句。。。当我回显json编码的版本时,有些值有"键",但"值"不包含任何内容。有什么想法吗?
function graph_fees($competitors, $fee_graph_data){
foreach ($competitors as $competitor) {
if (!empty($competitor->minSingleCareFee)) {
$fee_graph_data[$competitor->Home_name] = $competitor->minSingleCareFee;
}
}
return $fee_graph_data;
}
$mm_fees = graph_fees($competitors, $fee_graph_data);
echo json_encode($mm_fees);
创建数据时,空白可能会悄悄进入,请在检查之前对其进行trim()。
<?php
function graph_fees($competitors, $fee_graph_data = array())
{
foreach ($competitors as $competitor) {
$competitor->Home_name = trim($competitor->Home_name);
$competitor->minSingleCareFee = trim($competitor->minSingleCareFee);
if (!empty($competitor->minSingleCareFee) && !empty($competitor->Home_name)) {
$fee_graph_data[$competitor->Home_name] = $competitor->minSingleCareFee;
}
}
return $fee_graph_data;
}
$mm_fees = graph_fees($competitors, $fee_graph_data);
echo json_encode($mm_fees);
?>
foreach ($competitors as $competitor) {
$myValue = trim($competitor->minSingleCareFee);
if (!empty($myValue)) {
$fee_graph_data[$competitor->Home_name] = $competitor->minSingleCareFee;
}
}
包含空格的字符串不为空。截至php文档:
以下内容被认为是空的:
"" (an empty string) 0 (0 as an integer) 0.0 (0 as a float) "0" (0 as a string) NULL FALSE array() (an empty array) $var; (a variable declared, but without a value)
所以,如果事情通过了if,$competitor->minSingleCareFee
确实包含东西。
尝试
if ( isset($competitor->minSingleCareFee)
&& trim($competitor->minSingleCareFee) != false ) {
它将跳过" "
或"'n"
等值