Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将简单的php数组转换为带头的json数据_Php_Arrays_Json_Wordpress_Converters - Fatal编程技术网

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

如何将简单的php数组转换为带头的json数据,php,arrays,json,wordpress,converters,Php,Arrays,Json,Wordpress,Converters,我正在WordPress中获取post对象数据,这是我的代码 $pre_items = get_post_meta( $post_object->ID, 'rudr_select2_tags'); 印刷厂为我提供了这些数据 Array ( [0] => Array ( [Apple iPhone 5,Apple iPhone 6] => 1 ) ) 我已经写了下面的代码 $pre_items = get_post_meta( $post_object->ID, '

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

$pre_items = get_post_meta( $post_object->ID, 'rudr_select2_tags');
印刷厂为我提供了这些数据

Array ( [0] => Array ( [Apple iPhone 5,Apple iPhone 6] => 1 ) )
我已经写了下面的代码

  $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);  
但是这段代码返回数据

[{"id":{"Apple iPhone 5,Apple iPhone 6":1},"name":{"Apple iPhone 5,Apple iPhone 6":1}}]
但我想要以下格式的数据

[{id: Apple iPhone 5, name: "Apple iPhone 5"},
{id: Apple iPhone 6, name: "Apple iPhone 5"}
]

请帮助如何实现这一点。

添加第三个参数,以获取\u post\u meta以切换单个值的返回,并分解数组键以分离设备,以便按照您的示例构造数据

$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);  

谢谢,它是有效的,只是$key前面的第7行缺少一个逗号