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'];
注意上面的例子没有它们。