【问题标题】:Why doesn't my php function return a json formatted value?为什么我的 php 函数不返回 json 格式的值?
【发布时间】:2017-02-28 21:05:43
【问题描述】:

我正在尝试在 mysql 数据库中存储几个表单字段。这些特定字段可以有多个选择值。所以我喜欢将值存储为 json_encode 格式的值。

现在,当我为每个表单字段编码时,我可以将 json 格式的值存储在 mysql db 中。由于重复,我尝试了这个函数,但这会返回一个数组

function radioValue($radiodata) {
    $tmpArray = array();
    $tmpArrayLen = count($radiodata);
    for ($i = 0; $i < $tmpArrayLen; $i++) {
        $tmpArray[$i] = $radiodata[$i];
    }
    $tmpValue = json_encode($tmpArray);
    return $tmpValue;
}

所以不是 {"1":"value1"} 而是 ["value1"]

我忽略了什么??

顺便说一句,这就是为每个领域工作的原因

$tmpArray = array();
        $len = count($posted_data["field1"]);
        for ($i = 0; $i < $len; $i++) {
            $tmpArray[$i] = $posted_data["field1"][$i];
        }
        $storeValue = json_encode($tmpArray);

【问题讨论】:

  • 顺便说一句,你把 $radiodata 放在另一个数组中然后编码它 - 直接编码 $radiodata
  • ["value1"]valid JSON,它是您在 $tmpValue 中输入的数据的 JSON 表示形式。为什么你期望它是{"1":"value1"}?您在$tmpValue 中输入以索引0 开头的值,json_encode() 的输出是正确的。
  • 这是数值数组和关联数组的区别。
  • 你能给我们看看$radiodata的样子吗

标签: php mysql json


【解决方案1】:

编码后必须解码:

$futureArray = radioValue($radiodata);

$array = json_decode($futureArray);

另外,添加一个true 作为第二个参数,它将是一个关联数组

$array = json_decode($futureArray, true);

【讨论】:

  • 他想要json返回,所以我不知道你在回答什么问题。
  • json_decode('["value1"]') 无论如何都会返回数组,因为 JSON 中编码的值是数组,而不是对象。备注方括号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 2017-01-02
相关资源
最近更新 更多