将带有数组的 JavaScript 对象转换为 PHP 数组

Posted

技术标签:

【中文标题】将带有数组的 JavaScript 对象转换为 PHP 数组【英文标题】:transform JavaScript object with arrays into a PHP array 【发布时间】:2018-05-29 23:14:38 【问题描述】:

有没有人知道如何将此 javascript 对象转换为关联的 php 数组?

请注意,我不想将其读入 PHP,我希望在 PHP 中使用相同的数据结构,而无需遍历每一行并对其进行编辑,例如添加''=>

module.exports = 
  base: '/',
  api: 
    sentry: 'https://7ed0a4e5846c4c31a44812bd5e37c2a1@sentry.io/257382',
    wp: 
      imgSize: 
        _380x270: 'medium',
      
    
  ,
  y: 2017,
  href: 
    authors: '#',
    fb: '#',
    instagram: '#',
    de: 'https://wearede.com/',
  ,
  faction: 
    subscribe: "/",
    search: "/",
  ,
  search: 
    tags: [
        t: 'Lifestyle',
        h: '#'
      ,
      
        t: 'Politics',
        h: '#'
      ,
      
        t: 'Economy',
        h: '#'
      ,
    ],
    articles: [
        t: 'იოლანდა ჰადიდმა ჯიჯი ჰადიდის და ზეინ მალიკის ერთობლივი ფოტო გამოაქვეყნა',
        h: '#',
      ,
      
        t: 'ლარი ევროსთან მიმართებით რეკორდულად გაუფასურდა',
        h: '#',
      ,
    ]
  ,
  menuMain: [
      h: '#',
      t: 'სიახლეები'
    ,
    
      h: '#',
      t: 'ბიზნესი და ტექნოლოგია'
    ,
    
      h: '#',
      t: 'Lifestyle'
    ,
    
      h: '#',
      t: 'მოგზაურობა'
    ,
    
      h: '#',
      t: 'გასტრონომია'
    ,
    
      h: '#',
      t: '<i class="i i--hammock fz-20"></i>'
    ,
  ],
  footer: 
    authors: [
        i: 'https://picsum.photos/55/55',
        h: '#',
        n: 'Rusudan Tinatin',
        t: 'Author',
        d: 'ლარი ევროსთან მიმართებით რეკორდულად გაუფასურდა',
      ,
      
        i: 'https://picsum.photos/55/55',
        h: '#',
        n: 'Rusudan Tinatin',
        t: 'Author',
        d: 'იოლანდა ჰადიდმა ჯიჯი ჰადიდის და ზეინ მალიკის ერთობლივი ფოტო გამოაქვეყნა',
      ,
      
        i: 'https://picsum.photos/55/55',
        h: '#',
        n: 'Rusudan Tinatin',
        t: 'Author',
        d: 'ლარი ევროსთან მიმართებით რეკორდულად გაუფასურდა',
      ,
    ],
    nav: [
        t: 'პირობები',
        h: '#'
      ,
      
        t: 'პირადი ინფორმაცია',
        h: '#'
      ,
      
        t: 'ჩვენს შესახებ',
        h: '#'
      ,
      
        t: 'კონტაქტი',
        h: '#'
      ,
      
        t: 'ავტორები',
        h: '#'
      ,
    ],
    cats: [
        t: 'სიახლეები',
        h: '#'
      ,
      
        t: 'Lifestyle',
        h: '#'
      ,
      
        t: 'გასტრონომია',
        h: '#'
      ,
      
        t: 'ბიზნესი და ტექნოლოგია',
        h: '#'
      ,
      
        t: 'მოგზაურობა',
        h: '#'
      ,
      
        t: 'Hammock',
        h: '#'
      ,
    ],
    articles: 
      items: articles.slice(0, 3),
      i: 'https://picsum.photos/380/260',
      t: 'დეკანოზი გიორგი მამალაძე სასამართლომ დამნაშავედ ცნო',
      h: '#',
    ,
  

目前我正在考虑在 vim 中录制宏的选项,但这需要相当长的时间,而且我发现这种方法存在潜在的缺陷。

【问题讨论】:

在 Javascript 中使用 JSON.stringify(),在 PHP 中使用 json_decode() 解析它,然后使用 var_export() 将其打印为 PHP 数组字面量。 顺便说一句,这不是 Javascript 对象的数组。这是一个单一的对象。一些属性包含对象数组。 @Barmar 我错过了var_export() 的知识,谢谢!还修改了问题,你的权利。 @LorenzMeyer 我很高兴你能回答。我们俩同时想到。 @Barmar 既然你们都很好,我接受答案。 【参考方案1】:

将此对象转换为 JSON 字符串。然后在 PHP 中,你可以json_decodevar_export

【讨论】:

以上是关于将带有数组的 JavaScript 对象转换为 PHP 数组的主要内容,如果未能解决你的问题,请参考以下文章

将带有数字键的 JavaScript 对象转换为数组

Javascript 将字符串转换为对象数组

JavaScript:将具有父键的对象数组转换为父/子树(包括没有父的对象)

如何将带有数组的对象转换为数组

将带有对象的数组转换为数组[关闭]

如何将 Azure 流分析中的“类字典”结构转换为带有 javascript UDF 的多维数组?