我必须将 PHP 数组 json_encode 编码为 JavaScript 数组。不幸的是,如果它包含整数而不是字符串,我使用的 jQuery 库将无法正确处理该数组。
大多数情况下,这将生成仅包含字符串的正确数组:
json_encode($data)
Run Code Online (Sandbox Code Playgroud)
即使$data只包含数字,我通常也会得到这个:
["3","7","8"]
Run Code Online (Sandbox Code Playgroud)
但有时,我会得到这样的结果(注意零):
["9691","1792","26","1","4","15",0,"1"]
Run Code Online (Sandbox Code Playgroud)
或这个
[16171,15470,10390,7585]
Run Code Online (Sandbox Code Playgroud)
(注意,这显然是不同的数据来说明发生了什么)。我需要强制 json_encode 将数组值视为字符串。我知道有强制数字的相反选项 JSON_NUMERIC_CHECK。等价物真的不存在吗?似乎我唯一的选择是在 JavaScript 端再次处理数组,这虽然可能,但在某种程度上破坏了我的对象的封装。
让我解释一下我对这个问题的意思:
让我们说我必须这样的表:
customers
id customer location
1 Adam UK
2 Pete US
values
id value
1 10
1 7
2 3
2 41
Run Code Online (Sandbox Code Playgroud)
让我们暂时忽略那个(以及下面的查询)不会有多大意义.这是一个简化的例子.
现在,如果我运行此查询
SELECT id, customer, value FROM customers INNER JOIN values GROUP BY id
Run Code Online (Sandbox Code Playgroud)
我应该得到这个结果(与id不同)
id customer value
1 Adam 10
2 Pete 3
Run Code Online (Sandbox Code Playgroud)
我希望能够做到的是在搜索结果列表中使用它,但是为了实际显示结果,我想做这样的事情:
Customer: Adam
Values: 10, 7
Run Code Online (Sandbox Code Playgroud)
所以,基本上,虽然我需要有一个与ID不同的结果集,但我仍然希望以某种方式保存GROUP BY删除的行以显示如上所示的值列表.做这个的最好方式是什么?