Php 通过字符串访问json数组?(将字符串转换为变量名称)

Php 通过字符串访问json数组?(将字符串转换为变量名称),php,string,json,variables,Php,String,Json,Variables,我试图使用jquery将“lang_id”变量发布到“get_lang.php”以获取(json)数据。 但我无法访问数据 现在我正在努力 var r = $(this).attr('rel'); var v = data.r; 但这不起作用,因为“r”是字符串 也试过 data.window[r] // but... “get_lang.php” $lang_id = (int) ($_POST['lang_id']); if($lang_id == 1) { $la

我试图使用jquery将“lang_id”变量发布到“get_lang.php”以获取(json)数据。 但我无法访问数据

现在我正在努力

  var r = $(this).attr('rel');
  var v = data.r;
但这不起作用,因为“r”是字符串

也试过

data.window[r] // but...

“get_lang.php”

$lang_id = (int) ($_POST['lang_id']);

if($lang_id == 1)
{
     $lang['simple'] = 'aaa';
     $lang['array'] = 'bbb';
}

if($lang_id == 2)
{
     $lang['simple'] = 'ccc';
     $lang['array'] = 'ddd';
}

print json_encode($lang);
$.post("get_lang.php", { "lang_id": 2}, function(data){

   $('.lang').each(function() {

     var r = $(this).attr('rel');
     var v = data.r;

     $(this).text(v);

    });

},"json");
my.js

$lang_id = (int) ($_POST['lang_id']);

if($lang_id == 1)
{
     $lang['simple'] = 'aaa';
     $lang['array'] = 'bbb';
}

if($lang_id == 2)
{
     $lang['simple'] = 'ccc';
     $lang['array'] = 'ddd';
}

print json_encode($lang);
$.post("get_lang.php", { "lang_id": 2}, function(data){

   $('.lang').each(function() {

     var r = $(this).attr('rel');
     var v = data.r;

     $(this).text(v);

    });

},"json");
谢谢你的帮助。

试试看

var v = data[r];

点符号将r解释为字符串而不是变量。

我认为可能需要告诉jQuery正确的内容类型。将其放在
get_lang.php
文件的顶部

header("Content-Type: application/json");
看看jQuery是否喜欢它