【问题标题】:Convert PHP multidimensional array to JavaScript notation将 PHP 多维数组转换为 JavaScript 表示法
【发布时间】:2014-03-30 05:00:48
【问题描述】:

我正在寻找一个高效且干净的函数来将 PHP 多维数组转换为 javascript 符号定义。例如:

$settings = array(
    "customer" => array(
        "first_name" => "John",
        "last_name" => "Doe",
        "company" => array(
            "name" => "Foobar Inc",
            "address" => "123 Main Street"
        )
    )
)

应该翻译成:

echo 'window.customer.first_name = "John"';
echo 'window.customer.last_name = "Doe"';
echo 'window.customer.company.name = "Foobar Inc"';
echo 'window.customer.company.address = "123 Main Street"';

【问题讨论】:

  • 你试过搜索这个吗?
  • 看更新了,没json_encode()这么简单。
  • 你能解释一下为什么这种方法比json_encode更必要吗?
  • 你试图做的是一个糟糕的想法,没有任何意义。

标签: javascript php json


【解决方案1】:

只需使用json_encode()

$json = json_encode($settings);

示例:

$settings = array(
    "customer" => array(
        "first_name" => "John",
        "last_name" => "Doe",
        "company" => array(
            "name" => "Foobar Inc",
            "address" => "123 Main Street"
        )
    )
);

echo json_encode($settings);

输出

{"customer":{"first_name":"John","last_name":"Doe","company":{"name":"Foobar Inc","address":"123 Main Street"}}}

【讨论】:

  • @justin 我想你会发现它的工作方式类似于:var somevar = <?php echo json_encode($settings);?>;alert(somevar.customer.first_name);
【解决方案2】:

您似乎正在尝试生成一个 .ini 文件。我想说你可以编写一个简单的递归函数,给定一个基本字符串用作属性名称的开头,然后会为其值生成一行输出 - 或一系列行,递归调用自身,如果value 是一个数组。

这里给出了另一种方法:create ini file, write values in PHP

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多