json_encode返回空php数组

json_encode返回空php数组,php,ajax,json,Php,Ajax,Json,我试图向ajax发送一个php数组,但它不起作用。老实说,我不知道我做错了什么 我使用的是返回null的json_encode 我的php代码: $info = array(); $info['NEW YORK CITY'] = array( 'Name' => 'New York City' ); $city = $_POST['city']; if (strtoupper($city) === 'NEW YORK CITY') { echo "Name: " . json_enc

我试图向ajax发送一个php数组,但它不起作用。老实说,我不知道我做错了什么

我使用的是返回null的json_encode

我的php代码:

$info = array();
$info['NEW YORK CITY'] = array(
'Name' => 'New York City'
);

$city = $_POST['city'];

if (strtoupper($city) === 'NEW YORK CITY') {

echo "Name: " . json_encode($info['NEW YORK CITY']['Name']) . ".<br>";
} else {
echo "error.";
}

修好了!我在数组之前进行了json_编码。现在我把数组放在上面,它就可以工作了。

json\u encode接受数组作为参数

这样就需要以下步骤

array('key' => 'value')
$city = $_POST['city'];
 if (strtoupper($city) === 'NEW YORK CITY') {
     echo json_encode($info['NEW YORK CITY']);
 } else {
     echo json_encode(array("error."));
 }

这将作为格式正确的json key:value发送。但是单个值将无法正确处理,并可能导致不必要的结果。

用以下代码替换您的php代码

array('key' => 'value')
$city = $_POST['city'];
 if (strtoupper($city) === 'NEW YORK CITY') {
     echo json_encode($info['NEW YORK CITY']);
 } else {
     echo json_encode(array("error."));
 }

如果可行,请尝试以下方法:

  $city = $_POST['city'];

   if (strtoupper($city) === 'NEW YORK CITY') {
    echo json_encode(['Name' => $info['NEW YORK CITY']['Name'] ]);
   } else {
     echo json_encode(['error']);
   }
阿贾克斯:


您的ajax应该在提交之后,然后它将触发ajax函数。

json\u encode的第一个参数不限于数组。字符串或数字是完全可以接受的输入。虽然正确,但要跟上实践,它更直接,而且通常是建议的。但我错了。向询问用户或任何其他观众发送。这里有一个指向json_encode文档的链接。我可以看到打印的\u r$info$信息=数组$信息['NEW YORK CITY']=数组'Name'=>'纽约市','Rank'=>'美国第一','人口'=>'8491079';