在不改变结构的情况下修改php codeigniter活动记录结果中的数据

时间:2012-10-15 10:42:52

标签: php arrays codeigniter object activerecord

我有一个使用get('table_name') - > result();

的codeigniter活动记录查询

输出在下面,我要做的是反序列化(base_64_decode)“venue_opening_hours”字符串,并将数据结构中的字符串替换为unserialized&的结果。 base64_decoded数据。我知道我可以通过array_walk正常地执行此操作,但是我没有看到如何将该特定位数据作为数组中的对象进行访问...

谢谢!

array(2) {
  [0]=>
  object(stdClass)#142 (4) {
    ["entry_id"]=>
    string(2) "15"
    ["google-id"]=>
    string(40) "552e7c08d3b86c14d130ebe43a0ba421d03a60ae"
    ["venue_opening_hours"]=>
    string(148) "YToxOntzOjEzOiJvcGVuaW5nX2hvdXJzIjthOjE6e3M6NzoicGVyaW9kcyI7YToxOntzOjQ6Im9wZW4iO2E6Mjp7czozOiJkYXkiO3M6MToiNSI7czo0OiJ0aW1lIjtzOjQ6IjIzMTUiO319fX0="
    ["title"]=>
    string(18) "Place Name"
  }
  [1]=>
  object(stdClass)#143 (4) {
    ["entry_id"]=>
    string(2) "18"
    ["google-id"]=>
    string(40) "71d9c8e1f64f330637c96d30a0ae15533836a85e"
    ["venue_opening_hours"]=>
    string(972) "YToxOntzOjEzOiJvcGVuaW5nX2hvdXJzIjthOjE6e3M6NzoicGVyaW9kcyI7YToxMDp7aTowO2E6MTp7czo1OiJjbG9zZSI7YToyOntzOjM6ImRheSI7czoxOiIxIjtzOjQ6InRpbWUiO3M6NDoiMjMzMCI7fX1pOjE7YToxOntzOjQ6Im9wZW4iO2E6Mjp7czozOiJkYXkiO3M6MToiMSI7czo0OiJ0aW1lIjtzOjQ6IjIzMTUiO319aToyO2E6MTp7czo1OiJjbG9zZSI7YToyOntzOjM6ImRheSI7czoxOiIxIjtzOjQ6InRpbWUiO3M6NDoiMjMxNSI7fX1pOjM7YToxOntzOjQ6Im9wZW4iO2E6Mjp7czozOiJkYXkiO3M6MToiMSI7czo0OiJ0aW1lIjtzOjQ6IjIzMzAiO319aTo0O2E6MTp7czo1OiJjbG9zZSI7YToyOntzOjM6ImRheSI7czoxOiIyIjtzOjQ6InRpbWUiO3M6NDoiMjMxNSI7fX1pOjU7YToxOntzOjQ6Im9wZW4iO2E6Mjp7czozOiJkYXkiO3M6MToiMiI7czo0OiJ0aW1lIjtzOjQ6IjIzMzAiO319aTo2O2E6MTp7czo1OiJjbG9zZSI7YToyOntzOjM6ImRheSI7czoxOiI0IjtzOjQ6InRpbWUiO3M6NDoiMjMzMCI7fX1pOjc7YToxOntzOjQ6Im9wZW4iO2E6Mjp7czozOiJkYXkiO3M6MToiNCI7czo0OiJ0aW1lIjtzOjQ6IjIzMzAiO319aTo4O2E6MTp7czo1OiJjbG9zZSI7YToyOntzOjM6ImRheSI7czoxOiI1IjtzOjQ6InRpbWUiO3M6NDoiMjM0NSI7fX1pOjk7YToxOntzOjQ6Im9wZW4iO2E6Mjp7czozOiJkYXkiO3M6MToiNSI7czo0OiJ0aW1lIjtzOjQ6IjIzNDUiO319fX19"
    ["title"]=>
    string(24) "Other place name"
  }
}

1 个答案:

答案 0 :(得分:1)

您可以使用以下方式访问它:

$array[0]->venue_opening_hours
在for循环中

...

//foreach ($array as &$arrayItem)
//{
  foreach ($arrayItem as &$object)
  {
       // extract and convert it...
       //$openinghours =  unserialize(base64_decode($object->venue_opening_hours));
       // Update it...
       $object->venue_opening_hours = $unserialize(base64_decode($object->venue_opening_hours));
  }
//}

&$object是一个引用,因此赋值将更改原始结果集中的值...

我也忘记了循环阵列......我想!所以添加了外循环:)