-1

我有一串逗号分隔的值,像这样 -

$items = array();
foreach($_POST['check_list'] as $check) {
    $items[] = $check;
}
$options = implode(', ' , $items);


$ch = curl_init();
$data_json = json_encode(array(

"configuration"=> [
     "vehicleOptionIds"=> [$options]
],
"mileage"=> 85300,
));

当我通过它粘贴实际值时,它可以工作,但是当我使用 $options 变量传递它时出现问题。API 确实接受了一个与我最初想法相反的字符串。

4

1 回答 1

0

如果您想要整数,则必须将它们保存在数组中,而不是将其转换为字符串。调用intval()将字符串转换为整数。

$items = array();
foreach($_POST['check_list'] as $check) {
    $items[] = intval($check);
}

或者更简单地说:

$items = array_map('intval', $_POST['check_list']);

然后传递$items给 API。

$data_json = json_encode(array(
    "configuration"=> [
         "vehicleOptionIds"=> $items
    ],
    "mileage"=> 85300,
));

此 JSON 将包含:

"vehiclOptionIds": [1, 2, 3, 4]

当您使用 JSON 时,不要将其视为字符串。只需在所需的布局中创建数据结构,然后json_encode()进行适当的转换。

于 2019-04-16T18:28:56.623 回答