PHP,从我的Sql数据中检查值

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) {

它按行抽取10个数据,并将其作为$result\u数组生成一个新数组

有时,它不会有10个结果,可能会提取5个或8个

所以,我想检查最后一个是否有值,即$result[9]['b_code]


我应该使用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;