2012-04-05 63 views
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;PHP,检查My-Sql数据中的值

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

所以,我想请检查是否有留到最后一个值,该值是$结果[9] ['b_code]或不。

我应该使用isset吗?

回答

2

我应该使用isset吗?

是,isset­Docs是,如果你想,如果一个值被设置为测试正确的语言构造(例如设置,而不是NULL­Docs)。

在您的特定情况下,你也可以检查的$result长度,即与count­Docs完成:

$numberOfElements = count($result); 

一些示例代码isset

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

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

注意,在这个例子中,我们”防止重复我们自己10次只复制每个b_code元素。相反,这是通过数组映射完成的,请参阅array_map­Docs

甲大概更可读的变体,此时用count

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

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

该变型是利用的foreach­Docs防止由一个分配10种元素之一。

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; 
+1

TS只在'b_code'中被区分。 – hakre 2012-04-05 07:23:18

+0

@hakre似乎我误解了问题 – safarov 2012-04-05 07:24:33

+0

那么这个想法仍然是很好的映射,而不是一个一个地复制10个元素。 – hakre 2012-04-05 07:26:42

0

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

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

} 
0
$last_index = sizeof($result) - 1; 

if(!$result[$last_index]['b_code']){ 
//... 
} 
0

不能你只要做到这一点?

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

$result_array = array(); 

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

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