【问题标题】:Convert array to object in php - Convert this array to object in php在 php 中将数组转换为对象 - 将此数组转换为 php 中的对象
【发布时间】:2022-01-14 01:58:52
【问题描述】:

帮我把这个数组转换成php中的对象,下面是我的代码

data: [
    [
        1638849672000,
        0.0025
    ],
    [
        1638849732000,
        0.0008
    ],
    [
        1638849792000,
        0
    ],
    [
        1638849852000,
        0
    ]
]

我想转换成对象

data: [
    {
        'time': 1638849670000,
        'value': 0.0025,
    },
    {
        'time': 1638849730000,
        'value': 0.0008,
    },
    {
        'time': 1638849790000,
        'value': 0.0,
    },
    {
        'time': 1638849850000,
        'value: 0.0,
    }
]

这是我的代码

$newdata = [];
foreach ($data as $key => $value) {
    foreach ($value as $vl) {
        array_push($newdata, [
            'time' => $vl,
            'value' => $vl
        ]);
    }
}

帮我把这个数组转换成php中的对象,下面是我的代码 非常感谢

【问题讨论】:

    标签: php arrays object


    【解决方案1】:

    你非常不需要嵌套的 foreach。您可以使用惊人的内置 php 函数,例如 array_combine()。

    有 3 个选项可以做到这一点(如果你是有创造力的人,可以选择更多:D)

    $keys = ['time', 'value'];
    
    /** 1 option */
    foreach($data as $value){
        $newData[] = array_combine($keys, $value);
    }
    
    /** 2 option */
    foreach($data as $key => $value){
        $data[$key] = array_combine($keys, $value);
    }
    
    
    /** 3 option */
    $newData2 = array_map(function($value) use ($keys){
        return array_combine($keys, $value);
    }, $data);
    

    P.S 顺便说一下,php 支持关联数组。所以,这`不是对象,它是一个关联数组(带键的数组)

    [
     [
       'key' => 'value'
     ] 
    ]
    

    【讨论】:

      【解决方案2】:

      如果你想要一个对象数组,你可以使用array_map:

      $data = array_map(function($x) {
          return (object)[
              "time" => $x[0],
              "value" => $x[1]
          ];
      }, $data);
      

      PHP demo

      【讨论】:

        【解决方案3】:

        基本上你可以把你的数组转换成对象

        $newData = (object) $data;
        

        或者使用标准类

        $newData = new stdClass();
        foreach ($data as $key => $value)
        {
            $newData->$key = $value;
        }
        

        https://www.php.net/manual/fr/language.types.object.php#language.types.object.casting

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-01-20
          • 1970-01-01
          • 1970-01-01
          • 2019-09-18
          • 2013-10-29
          • 2011-11-08
          • 2014-11-09
          相关资源
          最近更新 更多