【问题标题】:Codeigniter PHP Array Object conversion [duplicate]Codeigniter PHP数组对象转换[重复]
【发布时间】:2019-10-21 07:18:09
【问题描述】:

我正在使用 PHP Codeigniter。我有一个模型的结果

Array ( [0] => stdClass Object ( [player_id] => 5bbbdfb4-6986-4383-90af-e3a12782b572 ) [1] => stdClass Object ( [player_id] => 46834ecd-ceef-49b8-a10a-706ee97ff729 ) )

我想转成

array("5bbbdfb4-6986-4383-90af-e3a12782b572","46834ecd-ceef-49b8-a10a-706ee97ff729")

我为此头疼了 2 天。任何帮助表示赞赏。

【问题讨论】:

  • 不确定特定于 CI 的方式,但 PHP 7+ 你应该能够做到array_column($array, "player_id")
  • 使用typecastinglike this $new_array = (array)$my_objects;
  • 我用过array_column($array, "player_id"),这里的输出是Array ( [0] => 5bbbdfb4-6986-4383-90af-e3a12782b572 [1] => 46834ecd-ceef-49b8-a10a-706ee97ff729 )
  • 我怀疑您是从数据库中获取结果的?如果你使用$query->result(),你也可以使用$query->result_array()
  • 尝试使用 json_encode() 方法将其转换为 json 格式。还要编辑您的问题并添加您正在编写的代码并获得此结果。

标签: php json rest codeigniter codeigniter-3


【解决方案1】:

如 Nigen Sen 所说,您可以在 PHP 7+ 中使用 array_column。

您也可以使用以下功能

$players = array_map(function($e) {
    return $e->player_id;
}, $records); // $records is your array object that need to be processed.

print_r( $players );

【讨论】:

  • 感谢 Vantiya,因为您和 Nigen Sen 的建议都返回 Array ( [0] => 5bbbdfb4-6986-4383-90af-e3a12782b572 [1] => 46834ecd-ceef-49b8-a10a-706ee97ff729 ) 如何再次转换为 array("5bbbdfb4-6986-4383-90af-e3a12782b572", "46834ecd-ceef-49b8-a10a-706ee97ff729")
  • @StephenPaulraj,你知道Array([0] => 'www') 等于Array('www')吗?
  • 这是一个数组。如果您声明数组中的每个元素,则数组(“5bbbdfb4-6986-4383-90af-e3a12782b572”,“46834ecd-ceef-49b8-a10a-706ee97ff729”)的默认索引从零开始。这是数组的一个特性。
  • 数组就是一个简单的变量,用来存储与索引/键相似类型的数据。
  • @asken-p 我知道,我将相同的结果传递给 Onesignal 我得到了错误。可接受的键是 array("x","y","z"), 'Array('www')' 这不会过去。
【解决方案2】:

你可以试试这个:

$arr = json_decode(json_encode($arr_obj), True);

也作

$arr = (array)$arr_obj;

【讨论】:

    猜你喜欢
    • 2016-10-11
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多