首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将简单php数组转换为带有头的json数据

如何将简单php数组转换为带有头的json数据
EN

Stack Overflow用户
提问于 2021-05-23 20:08:45
回答 1查看 76关注 0票数 0

我正在WordPress中获取post对象数据,下面是我的代码

代码语言:javascript
运行
复制
$pre_items = get_post_meta( $post_object->ID, 'rudr_select2_tags');

print_r向我提供了这些数据

代码语言:javascript
运行
复制
Array ( [0] => Array ( [Apple iPhone 5,Apple iPhone 6] => 1 ) )

我写了下面的代码

代码语言:javascript
运行
复制
  $pre_items = get_post_meta( $post_object->ID, 'rudr_select2_tags');
  $new_arr = array();

  foreach($pre_items as $arr){
    $process_array = array();
    $process_array['id'] = $arr;
    $process_array['name'] = $arr;
    array_push($new_arr,$process_array);
   }

   $items = json_encode($new_arr);  

但此代码返回数据。

代码语言:javascript
运行
复制
[{"id":{"Apple iPhone 5,Apple iPhone 6":1},"name":{"Apple iPhone 5,Apple iPhone 6":1}}]

但我想要以下格式的数据

代码语言:javascript
运行
复制
[{id: Apple iPhone 5, name: "Apple iPhone 5"},
{id: Apple iPhone 6, name: "Apple iPhone 5"}
]

请帮我解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-23 20:39:52

将第三个参数添加到get_post_meta以切换单个值的返回,并引爆数组键来分离设备,以便按照示例构造数据。

代码语言:javascript
运行
复制
$pre_items = get_post_meta( $post_object->ID, 'rudr_select2_tags', true);
$new_arr = array();

foreach($pre_items as $key => $value ){

    // Split key into array.
    $devices = explode( ',', $key );

    // name is set to first device.
    $name = $devices[0];

    foreach ( $devices as $device ) {
        $process_array = array(
            'id' => $device,
            'name' => $name,
        );
        array_push($new_arr, $process_array);
    }

}

$items = json_encode($new_arr);  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67663911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档