如标题所述,我正在尝试使用 Bootstrap 的 Typeahead.js,它需要这样的 JSON 字符串
var subjects = ['PHP', 'MySQL', 'SQL', 'PostgreSQL', 'HTML', 'CSS', 'HTML5', 'CSS3', 'JSON'];
但我有一个多维数组,在执行 json_encode 后返回以下内容
[{"username":"Test1"},{"username":"Test2"},{"username":"Test3"},{"username":"Test4"},{"username":"Test5"},{"username":"Test6"}]
当我尝试使用这个数组时,Typeahead.js 抛出错误。
我如何将多维转换成示例中的样子?
原始 PHP 数组
Array
(
[0] => Array
(
[username] => Test1
)
[1] => Array
(
[username] => Test2
)
[2] => Array
(
[username] => Test3
)
[3] => Array
(
[username] => Test4
)
[4] => Array
(
[username] => Test5
)
[5] => Array
(
[username] => Test6
)
)
Desired outcome would be
var subjects = ['Test1', 'Test2', 'Test3', 'Test4', 'Test5', 'Test6'];
最佳答案
您的原始数组是二维的。您需要获取每个子数组的元素,然后将其转换为 JSON:
echo json_encode(array_map(function($x) { return $x['username']; }, $original_array));
或者,您可以首先修复创建原始数组的任何代码。为什么它在每个元素中放置一个关联数组,而不仅仅是用户名本身?如果它们只有一个元素且始终具有相同的键,那么让它们成为关联数组没有多大意义。
关于PHP/jQuery - 如何将多维 PHP 数组转换为 JSON 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19328934/