$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;


它按行提取10个数据,并使其成为一个新数组,作为$ result_array;

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

因此,我想检查是否有最后一个值,即是否为$ result [9] ['b_code]。

我应该使用isset吗?

最佳答案

我应该使用isset吗?


是的,如果您要测试是否设置了值(例如,设置而不是isset),则NULL是正确的语言构造。

在您的特定情况下,您还可以检查$result的长度,这是通过count完成的:

$numberOfElements = count($result);


isset的一些示例代码:

if (!isset($result[9]))
{
    return FALSE;
}

return array_map(function($v) {return $v['b_code'];}, $result);


请注意,在此示例中,我们仅复制每个b_code元素即可防止重复10次。相反,这是通过数组映射完成的,请参见array_map

可能更易读的变体,这次使用count

if (10 != count($result))
{
    return FALSE;
}

$resultArray = array();
foreach ($result as $v)
{
    $resultArray[] = $v['b_code'];
}
return $resultArray;


此变体利用foreach来防止一个一分配10个元素。

关于php - PHP,检查My-Sql数据中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10023975/

10-16 16:04
查看更多