0
$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吗?

4

5 回答 5

2

我应该使用isset吗?

是的,如果您想测试是否设置了值(例如 set 而不是Docs) , issetDocs是正确的语言结构。NULL

$result在您的特定情况下,您还可以检查countDocs的长度:

$numberOfElements = count($result);

一些示例代码isset

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

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

Note that in this example we're preventing to repeat ourselves 10 times only to copy each b_code element. Instead, this is done with array mapping, see array_map­Docs.

A probably more readable variant, this time with count:

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

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

This variant is making use of foreach­Docs to prevent assigning 10 elements one by one.

于 2012-04-05T07:17:58.783 回答
0

您不需要将整个数组再次分配给新数组。

 $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;
于 2012-04-05T07:05:02.487 回答
0

您也可以通过计数功能检查它..

if(count($result) == 10 && $result[9]['b_code'] != '') {
   // your code...

}
于 2012-04-05T07:05:14.170 回答
0
$last_index = sizeof($result) - 1;

if(!$result[$last_index]['b_code']){
 //...
}
于 2012-04-05T07:06:59.420 回答
0

你不能简单地这样做吗?

$result = $this->db->query($query)->result_array();

$result_array = array();

foreach($result as $key=>$value) { 
    $result_array[$key] = $value['b_code'];
}

这应该适用于任何数量的结果。

于 2012-04-05T07:17:23.120 回答