PHP,从我的Sql数据中检查值
它按行抽取10个数据,并将其作为$result\u数组生成一个新数组 有时,它不会有10个结果,可能会提取5个或8个 所以,我想检查最后一个是否有值,即$result[9]['b_code]PHP,从我的Sql数据中检查值,php,mysql,Php,Mysql,它按行抽取10个数据,并将其作为$result\u数组生成一个新数组 有时,它不会有10个结果,可能会提取5个或8个 所以,我想检查最后一个是否有值,即$result[9]['b_code] 我应该使用isset吗?您不需要再次将整个数组分配给新数组 $result = $this->db->query($query)->result_array(); if($result[9]['b_code'] != FALSE) {
我应该使用isset吗?您不需要再次将整个数组分配给新数组
$result = $this->db->query($query)->result_array();
if($result[9]['b_code'] != FALSE)
{
$result_array = array(
'0' => $result[0]['b_code'],
'1' => $result[1]['b_code'],
'2' => $result[2]['b_code'],
'3' => $result[3]['b_code'],
'4' => $result[4]['b_code'],
'5' => $result[5]['b_code'],
'6' => $result[6]['b_code'],
'7' => $result[7]['b_code'],
'8' => $result[8]['b_code'],
'9' => $result[9]['b_code']
);
return $result_array;
}
else
return FALSE;
您也可以通过计数功能进行检查
$result_array = $this->db->query($query)->result_array();
if(array_key_exist($result_array, 9) && isset($result_array[9]['b_code'])) {
return $result_array;
}
return false;
你就不能这么做吗
$last_index = sizeof($result) - 1;
if(!$result[$last_index]['b_code']){
//...
}
这应该适用于任何数量的结果
我应该使用isset吗
是的,如果您想测试是否设置了值(例如设置和不设置),这是正确的语言结构
在您的特定情况下,您还可以检查$result
的长度,这是通过以下方式完成的:
带有isset
的一些示例代码:
$numberOfElements = count($result);
请注意,在本例中,我们防止重复10次,仅复制每个b_代码
元素。相反,这是通过数组映射完成的,请参阅
一个可能更易读的变体,这次使用的是count
:
if (!isset($result[9]))
{
return FALSE;
}
return array_map(function($v) {return $v['b_code'];}, $result);
这个变体是用来防止一个接一个地分配10个元素。@hakre似乎误解了我的问题。这个想法仍然适合映射,而不是一个接一个地复制10个元素。
$numberOfElements = count($result);
if (!isset($result[9]))
{
return FALSE;
}
return array_map(function($v) {return $v['b_code'];}, $result);
if (10 != count($result))
{
return FALSE;
}
$resultArray = array();
foreach ($result as $v)
{
$resultArray[] = $v['b_code'];
}
return $resultArray;