Php 从数组获取单个值-从URL获取数组

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 $

嗨,我正在尝试从下面的数组示例中获取单个值-

我想取订单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 $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'];