繁体   English   中英

如何从php中的php数组创建对象的json数组?

[英]how to create json array of objects from php array in php?

我有一个包含一些整数的 php 数组,如下所示

Array
(
    [0] => 41
    [1] => 64
    [2] => 51
    [3] => 42
    [4] => 65
    [5] => 52
    [6] => 66
    [7] => 67
)

现在我想像这样创建对象的json数组。

[{"assosiated_id": 41}, {"assosiated_id": 42}, {"assosiated_id": 51}, {"assosiated_id": 52}, {"assosiated_id": 64}, {"assosiated_id": 65}, {"assosiated_id": 66}, {"assosiated_id": 67}]

我曾尝试将此数组转换为关联数组,然后编码为 json 但关联数组不能有重复值。请告诉哪个是最好的方法?

$a = [41, 64, 51, 42, 65, 52, 66, 67];
sort($a);
$b = [];
foreach ($a as $v) { 
    $b[] = ['associated_id' => $v]; 
}
echo json_encode($b);

[{"associated_id":41},{"associated_id":64},{"associated_id":51}, {"associated_id":42},{"associated_id":65},{"associated_id":52},{"associated_id":66},{"associated_id":67}]

或者,您可以在评论中使用Mark Ba​​ker 的 oneliner

如果您使用的是旧版本的 PHP,您可能必须像这样编写代码

$a = array(41, 64, 51, 42, 65, 52, 66, 67);
sort($a);
$b = array();
foreach ($a as $v) { 
    $b[] = array('associated_id' => $v); 
}
echo json_encode($b);

请根据php语法相应地更改您的数组,如果这是您的意思

https://eval.in/384328

<?php
$data = Array
(
    0 => 41,
    1 => 64,
    2 => 51,
    3 => 42,
    4 => 65,
    5 => 52,
    6 => 66,
    7 => 67
);

$mapFunc = function($n) {
  return array('assosiated_id' => $n);
};

echo json_encode(array_map($mapFunc, $data));

检查这个

<?php
$array = array(41,52,64,67,68,89,34);

$new = [];
foreach($array as $a)
{
    $b = array('assosiated_id' => $a);
    $new[] =$b;
}

echo json_encode($new);

输出将是

[
{
assosiated_id: 41
},
{
assosiated_id: 52
},
{
assosiated_id: 64
},
{
assosiated_id: 67
},
{
assosiated_id: 68
},
{
assosiated_id: 89
},
{
assosiated_id: 34
}
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM