PHP - 如何将数组动态添加到对象请求

PHP - How to dynamically add array to Object request

我正在进行 Jira REST API 调用,我想知道如何使用 PHP 中的 REST API 将多个组件动态添加到组件字段。我有以下代码,当我将它设置为静态时可以工作,但不确定如何动态地进行。

静态组件集示例:

$data = array(

'fields' => array(

    'project' => array(

        'key' => $rowAnswers["Key"]

    ),
    'summary' =>  $rowAnswers["Summary"],

    'description' => $rowAnswers["Description"],

    'issuetype' => array(
        'name' => $rowAnswers["IssueType"]
    ),

    'components' => array(
        array(
            "name" => "component1"
        ),
        array(
            "name" => "component2"
        )
    )
),
);

我想用以下内容替换静态内容的数组:

$components = explode(",", $rowAnswers["Components"]);
        $arr = array();
        foreach($components as $value){
            $array = array("name"=>$value);
            array_push($arr,$array);
        }

正在替换

'components' => array(
    array(
        "name" => "component1"
    ),
    array(
        "name" => "component2"
    )
)

'components' => [
                    $arr
                ]

不起作用,我得到:

"{"error":false,"error_msg":"","data":"{\"errorMessages\":[],\"errors\":{\"components\":\"expected Object\"}}"}"

我在一个 api 调用中看到一个看起来像这样的请求:

[components] => Array
            (
                [0] => stdClass Object
                    (
                        [name] => component1
                    )

                [1] => stdClass Object
                    (
                        [name] => component2
                    )

            )

但是我不确定如何在PHP中将数组转换为这种类型的对象或请求。使用 PHP-cURL 和 json_encoding 发送的数据调用。

提前致谢!

您需要通过将第二个参数设置为 true

将 json 解码为关联数组

查看 json_decode

assoc

When TRUE, returned objects will be converted into associative arrays.

要解决此问题,我必须执行以下操作:

从数据库创建数组时:

$components = explode(",", $rowAnswers["Components"]);
        $arr = array();
        foreach($components as $value){
            $array = json_decode(json_encode(array("name"=>$value)), FALSE);
            array_push($arr,$array);
        }

然后在请求中设置组件:

'components' => $arr

谢谢