我有这样的json $json
{"name":"peter","availability":"available"}
我想解码并设置值为php可用和echo
,但没有任何显示?,我使用这个代码
<?PHP
$decode = json_decode($json, true);
$availability = $decode[availability];
echo $availability;
?>
使用
$availability = $decode["availability"];
如果使用
$availability = $decode[availability];
它会发出一个通知
Notice: Use of undefined constant availability - assumed 'availability'
但是你的代码是正确的,应该显示上述通知的值,除非$json
字符串不是你添加的。
代码
<?php
$arr = array('name' => peter, 'availability' => available);
$json = json_encode($arr);
$decode = json_decode($json, true);
$availability = $json_decode[availability];
print_r($json);
echo $availability;
?>
这就是你在做的
$decode = json_decode($json, true);
$availability = $json_decode[availability];
您正在使用不同的数组名称$json_decode
而不是$decode
所以正确的方法是
$arr = array('name' => 'peter', 'availability' => 'available');
$json = json_encode($arr);
$decode = json_decode($json, true);
$availability = $decode['availability']; //print_r($json);
echo $availability;
您在注释中提供了完整的代码:
$decode = json_decode($json, true);
$availability = $json_decode[availability];
$decode
和$json_decode
不是相同的变量名。选择一个并保持一致。
您错过了引号。应该是
$availability = $decode['availability'];
不只是回显一个数组,你可以使用pretty print
试
$json = '{"name":"peter","availability":"available"}';
$decode = json_decode($json, true);
//$availability = $decode['availability'];
echo "<pre>";
print_r($decode);