php如何获取淘宝api返回数组里的值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何获取淘宝api返回数组里的值?相关的知识,希望对你有一定的参考价值。

我用print_r($resp);能打印出xml数据,但是是所有的数据,那么我要取其中一个值怎么办比如“price"的值,应该怎么写代码,另外我在网页需要调用这个值的时候怎么弄

<pre>
<?php
include "api/TopSdk.php";
$c = new TopClient;
$c->appkey = test;
$c->secretKey = test;
$req = new TaobaokeItemsGetRequest;
$req->setFields("nick,iid,title,pic_url,price,click_url,commission,commission_rate,commission_num,commission_volume");
$resp = $c->execute($req);

print_r($resp);

?>
</pre>

没写过淘宝API的代码,不太清楚$resp的具体数据结构,如果仅仅是将符合xml语法的数据当作array来处理,可以考虑以下代码:

// Xml 转 数组, 包括根键,忽略空元素和属性,尚有重大错误
function xml_to_array( $xml )

    $reg = "/<(\\\\w+)[^>]*?>([\\\\x00-\\\\xFF]*?)<\\\\/\\\\1>/";
    if(preg_match_all($reg, $xml, $matches))
    
        $count = count($matches[0]);
        $arr = array();
        for($i = 0; $i < $count; $i++)
        
            $key = $matches[1][$i];
            $val = xml_to_array( $matches[2][$i] );  // 递归
            if(array_key_exists($key, $arr))
            
                if(is_array($arr[$key]))
                
                    if(!array_key_exists(0,$arr[$key]))
                    
                        $arr[$key] = array($arr[$key]);
                    
                else
                    $arr[$key] = array($arr[$key]);
                
                $arr[$key][] = $val;
            else
                $arr[$key] = $val;
            
        
        return $arr;
    else
        return $xml;
    

// Xml 转 数组, 不包括根键
function xmltoarray( $xml )

    $arr = xml_to_array($xml);
    $key = array_keys($arr);
    return $arr[$key[0]];
追问

谢谢你,不过我对php也只懂点基础,你给我这个我也不会用

参考技术A 淘宝api接口也可以生成json格式的结果,我是将json格式的结果转为数组形式,然后读取其中的值,希望对你有所帮助 参考技术B php调用远程api有两种方法,一种是通过fsockopen函数来传输和调用数据.
另一种方法是通过php册curl扩展来实现.
现在大部分程序使用的都是fsockopen和pfsockopen这两个函数.

PHP怎么随机获取数组里面的值?

需要准备的材料分别是:电脑、php编辑器、浏览器。

1、首先,打开php编辑器,新建php文件,例如:index.php,并定义一个数组。

2、在index.php中,输入代码:echo $a[mt_rand(0, count($a) - 1)];。

3、浏览器运行index.php页面,此时随机打印出了数组中的值。

4、浏览器按F5刷新,发现确实是随机的。

参考技术A

php中可以用随机数函数获取数组里面的值。

1、新建php文档,创建一个数组并把数组赋值给一个变量,这里以“arr”为例:

2、使用“rand”随机数函数,由于数组下标是从0开始,所以函数第一个参数为0,第二个参数为数组的长度再减去1,这样获取到的值为数组下标的随机数:

3、将这个随机数填入数组中,然后将数组中的值输出,这样获取到的值就是数组中随机的值:

参考技术B 方法1:
$arr=array(........); //初始化数组
$key=array_rand($arr); //随机获取数组的键
echo $arr[$key]; //输出随机数组值。
改进型:
$arr=array(........);
echo $arr[array_rand($arr)];

方法2:
$arr=array(........); //初始化数组
shuffle($arr); //打乱数组顺序
echo array_shift($arr); //输出新数组的第一个值。

以上是关于php如何获取淘宝api返回数组里的值?的主要内容,如果未能解决你的问题,请参考以下文章

怎么获取数组里对象的某一项属性值

php 获取数组第一个key 第一个键值对 等等

如何在 PHP 中循环并输出变量数组对象的值

如何使用 PHP/Laravel 返回 Json 数据数组?

PHP:如何将一个数组中的键与另一个数组中的值进行比较,并返回匹配项?

如何在 PHP 中返回从 MySQL 获取的数组