2012-04-05 6 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); 

は注意各b_code要素をコピーするためだけに自分自身を10回繰り返すことを防ぎます。代わりに、これは配列マッピングで行われます(array_map­Docs参照)。

countとAおそらくより可読バリアント、この時間:

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

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

この変異体は、10個の要素を一つずつ割り当てる防止するforeach­Docsを利用しています。

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'でinteresetされます。 – hakre

+0

@hakreは質問が誤解されているようです – safarov

+0

10要素を1つずつコピーするのではなく、まだマップするのは良い考えです。 – hakre

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']; 
} 

これは任意の数の結果に対して機能するはずです。