Php 从数组获取单个值-从URL获取数组
嗨,我正在尝试从下面的数组示例中获取单个值- 我想取订单id和名称-Php 从数组获取单个值-从URL获取数组,php,arrays,json,curl,multidimensional-array,Php,Arrays,Json,Curl,Multidimensional Array,嗨,我正在尝试从下面的数组示例中获取单个值- 我想取订单id和名称- <?php $url = 'http://example.com/index.php?route=feed/rest_api/orders&key=test219'; $json = file_get_contents($url); echo '<pre>'; echo $json; echo '</pre>'; ?> 我已经试过了 echo $
<?php
$url = 'http://example.com/index.php?route=feed/rest_api/orders&key=test219';
$json = file_get_contents($url);
echo '<pre>'; echo $json; echo '</pre>';
?>
我已经试过了
echo $json[0]['order_id'];
及
但它不起作用。。。请帮助index.php返回了错误的数据,如果仔细观察,您会发现它试图将success=false结果作为json数据发送,但可能出于测试目的,它还直接返回json数据之前的数组内容 此外,如果这应该是一个json结果,那么在使用返回的json对象作为类对象(如$json->order\u id)之前,需要使用json\u decode 这是我使用您提供的参数尝试您当前的URL时得到的结果:查看最后一行:
preg_match_all("/\[order_id\] => ([^\n\r]+)/", $json, $m);
print_r($m[1]);
您无法访问服务器返回的数据。服务器不是返回json对象,而是通过数组返回
print\u r()
输出
如果是您的服务器,则停止打印,并在打印之前在阵列上使用json\u encode()
如果不是您的服务器,那么您必须解析文本中的值。您可以为此使用preg\u match\u all()
echo json_encode($some_array);
可能有内置的php函数,可以将这样的
print\r()
输出恢复到php数组中,但我不知道 将响应从url更改为json(使用json_encode函数)url脚本中的最后一行应为
$array = json_decode(file_get_contents($url),TRUE);
if(!is_array($array)){
echo 'bad response';
exit();
}
var_dump($array);
echo $array[0]['order_id'];
如果您想要内容:
你试过echo$json['order_id']吗?我看不到你在任何地方真的解码这个json。。。您是忘了发布它还是忘了添加
json\u decode($json)
?这个url的输出看起来像是php中数组的字符串表示。因此,基本上,当运行file\u get\u contents
时,您将获得字符串。因此,您无法从$json
访问order\u id
是的,我已尝试使用json\u decode($json),谢谢您的回复。这是不同的查询。@user1250920,您需要检查index.php无论查询是什么,它都不会返回“仅”json数据。修复后,您需要使用json_decode(file_get_contents($url))来解码要用作json对象的文本。@user1250920-因为url中的index.php没有返回正确的数据-正如我所解释的。需要先检查一下。json_解码是在index.php中修复问题后的下一部分。是的,但它显示在array-result-array([0]=>zoraya panansar[1]=>ciria ann nuqui)中,我想使用内爆(“
”,$m[1])来显示数组,比如-zoraya panansar
ciria ann nuquitry代码>或连接(“
”,$m[1])对不起,我弄错了。。。现在工作我能在同一次内爆中获得多个值吗?谢谢,得到了-糟糕的响应
preg_match_all("/\[order_id\] => ([^\n\r]+)/", $json, $m);
print_r($m[1]);
echo json_encode($some_array);
$array = json_decode(file_get_contents($url),TRUE);
if(!is_array($array)){
echo 'bad response';
exit();
}
var_dump($array);
echo $array[0]['order_id'];