0

私は codeigniter のモデル クラスで 'get' 関数を書いていますが、返されたデータの一部を処理する必要があります。

function get_answers($p)
{
    $result = $this->db->get_where('answer', array('a_upid_fk' => $p))->result();

    // foreach ($result->answer as $ans) {  
    //  $result->answers = explode( '|', $ans, -1 );
    // }

    return $result;
}

結果は次のようになります。

array (
  0 => 
  stdClass::__set_state(array(
     'aid' => '742',
     'a_upid_fk' => '231',
     'answer' => '4555|||',
     'a_qid_fk' => '70',
     'created' => '2012-04-20 15:35:38',
     'last_modified' => '2012-04-20 15:36:11',
     'revision' => '1',
  )),
  1 => 
  stdClass::__set_state(array(
     'aid' => '743',
     'a_upid_fk' => '231',
     'answer' => NULL,
     'a_qid_fk' => '71',
     'created' => '2012-04-20 15:35:38',
     'last_modified' => '2012-04-20 15:35:38',
     'revision' => '1',
  )) ...

問題は、回答がパイプで区切られた回答のリストとして保存されることですが、代わりに関数がそれを分解された配列として返すようにしたいです。構文と、配列を作成して置換する方法、または上で貼り付けたオブジェクトの配列に追加する方法がわかりません。

私が試したいくつかのコードがコメントアウトされているのを見ることができます。

理想的には、'answer' => '4555|||', 私がしたいのではなく

'answer' => array (
      0 => '4555', 
      1=> '', 
      2=> '')

使用して配列を作成するのに問題はありexplodeませんが、元の codeigniter アクティブ レコードの結果を変更する方法がわかりません。

4

1 に答える 1

0

サブ配列をループします。

$answer_array = explode('|', $answer);
foreach ($aswer_array as $instance)
{
  $result[] = $instance;
}

を定義__set_state())し、 - を使用して呼び出します$subarray = $result[0][$object->answer]

于 2012-04-23T20:57:48.260 に答える