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を使用する必要がありますか?

はい、値が設定されているかどうかをテストする場合は、 issetDocsが適切な言語構造です (たとえば、 set であり、 NULLDocsではありません)。

特定のケースでは、 Docs$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;

このバリアントは、foreachDocsを利用して、 10 個の要素を 1 つずつ割り当てるのを防ぎます。

于 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 に答える