PHP/jQuery - 如何将多维 PHP 数组转换为 JSON 字符串?

标签 php jquery arrays json multidimensional-array

如标题所述,我正在尝试使用 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/

相关文章:

php - 如何在不影响 PHP 表单中字段值的情况下禁用输入字段?

php、jquery 和 ajax - 根据先前选择的值填充选择下拉列表

jquery - 如何使用数据类型 : 'jsonp' but still have application/json in Accept header?

javascript - 根据另一个不同长度数组中的值对数组进行排序

javascript - 过滤Json数组多键

arrays - 在 AS3 中清空向量或数组的最佳方法是什么?

html表的php多维数组

php - MYSQli 选择不工作

javascript - 在悬停时使用替换后恢复 div

javascript - 如何在 jQuery 中使用多个选择器