【问题标题】:Pass Comma separated string values in PHP [duplicate]在 PHP 中传递逗号分隔的字符串值 [重复]
【发布时间】:2019-04-16 18:23:59
【问题描述】:

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

$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 确实接受了一个与我最初想法相反的字符串。

【问题讨论】:

  • 这不是字符串,你需要引号。
  • 保持逗号是什么意思?整数没有逗号。你想要一个数组吗?
  • 是的,所以我将这些值传递给 api 调用,这些值需要是整数,但它不会接受我的输出

标签: php string integer comma


【解决方案1】:

如果您想要整数,则必须将它们保存在数组中,而不是将其转换为字符串。调用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() 就会进行适当的转换。

【讨论】:

  • 谢谢,但是 api 只接受逗号分隔的列表,所以我想我对此感到困惑。我明白你在说什么,这很有意义,但它也不接受数组。
  • 提供 API 文档的链接。
  • 没有不是字符串的逗号分隔列表。
  • 我知道哈哈,这就是为什么我对他们想要什么如此困惑。我想也许我错过了什么
  • 也许逗号后面不应该有空格。
猜你喜欢
  • 1970-01-01
  • 2015-08-11
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2019-05-08
  • 2015-05-31
  • 2016-02-08
  • 2021-05-14
相关资源
最近更新 更多