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 回答