PHP数组回显不工作

PHP数组回显不工作,php,arrays,Php,Arrays,我有这样一个数组: [meta] => Array ( [company] => Company, LLC [confirmation] => 6391381 [reference] => None [service] => Service [timestamp] => 2016-04-25 11:12:54 [user] => company ) [result] => Array ( [action] => R

我有这样一个数组:

[meta] => Array (
  [company] => Company, LLC
  [confirmation] => 6391381
  [reference] => None
  [service] => Service
  [timestamp] => 2016-04-25 11:12:54
  [user] => company
)
[result] => Array (
  [action] => REVIEW
  [detail] => TRANSACTION REQUIRES FURTHER ATTENTION
  [issues] => Array (
      [0] => DOB CHECK FAILED
    )
)
[output] =>  Array ( )  
我试图像这样回应“动作”值:

$json_result = json_decode($result, true); 
echo "$json_result[result]['action']";
$json_result['result']['action'];
             ^      ^
但是我没有得到“评论”,而是得到了:
'Array['action']'

有什么想法吗

查看所有阵列

print_r($json_result);
仅查看操作

echo $json_result['result']['action'];
要查看所有阵列

print_r($json_result);
仅查看操作

echo $json_result['result']['action'];

您缺少第一个索引中的撇号:

$json_result[result]['action'];
应该是这样的:

$json_result = json_decode($result, true); 
echo "$json_result[result]['action']";
$json_result['result']['action'];
             ^      ^
编辑: 如果将整个表达式放在大括号({)之间,则可以使用常规php语法来处理数组值:

…或者简单地从echo中删除双引号(“)


此处的更多信息:您缺少第一个索引中的撇号:

$json_result[result]['action'];
应该是这样的:

$json_result = json_decode($result, true); 
echo "$json_result[result]['action']";
$json_result['result']['action'];
             ^      ^
编辑: 如果将整个表达式放在大括号({)之间,则可以使用常规php语法来处理数组值:

…或者简单地从echo中删除双引号(“)


更多信息:在字符串中使用数组会导致疯狂,或者至少会导致可怕的挫折

正如Jon Stirling所指出的,在你的例子中,为什么还要麻烦把变量放在双引号中呢

echo $json_result['result']['action'];
工作正常。如果必须在字符串中使用数组,请使用大括号将其转义

echo "{$json_result['result']['action']}";

在字符串中使用数组会导致疯狂,或者至少是可怕的挫折

正如Jon Stirling所指出的,在你的例子中,为什么还要麻烦把变量放在双引号中呢

echo $json_result['result']['action'];
工作正常。如果必须在字符串中使用数组,请使用大括号将其转义

echo "{$json_result['result']['action']}";

echo$json_result['result']['action'];
?@jon当我这样尝试时,我得到了以下错误:语法错误,意外的“”(T_ENCAPSED_和_空格),需要标识符(T_字符串)或变量(T_变量)或数字(T_NUM_字符串)我给出的代码示例不会产生该错误,或者假设您的问题是准确的,则不会产生任何错误。您使用了错误的代码。是的,它会产生错误(如果仍然使用双引号)。双引号字符串中的单引号数组键是错误的。若要在双引号中使用引号键,它必须是
{}
included.@MichaelBerkowski您在我的评论中看到双引号了吗?
echo$json\u result['result']['action'];
?@jon当我这样尝试时,我得到了以下错误:语法错误,意外的“”(T\u ENCAPSED\u和\u空格),期望标识符(T\u字符串)或变量(T\u变量)或数字(T\u NUM\u字符串)我给出的代码示例不会产生该错误,或者假设您的问题是准确的,则不会产生任何错误。您使用了错误的代码。是的,它会产生错误(如果仍然使用双引号)。双引号字符串中的单引号数组键是错误的。若要在双引号中使用引号键,它必须是
{}
included.@MichaelBerkowski您在我的评论中看到双引号了吗?当我这样尝试时,我得到了以下错误:语法错误,意外的“”(T\u ENCAPSED\u和\u空格),需要标识符(T\u字符串)或变量(T\u变量)或数字(T\u NUM\u字符串)@TomCanfarotta如果你要把T_封装起来,而空格不是空的,因为你仍然有双引号围绕着整个事情,如
echo“$json_result['result']['action']”;
注意上面的例子没有它们。当我像这样尝试时,我得到了以下错误:语法错误,意外“(T_-ENCAPSED_和_-WHITESPACE),期望标识符(T_-STRING)或变量(T_-variable)或数字(T_-NUM_-STRING)@TomCanfarotta,如果你得到的是T_-ENCAPSED,而空格不是sb,因为你仍然有两个引号围绕着整件事,如
echo“$json_-result['result']['action'];
注意上面的例子没有它们。