Php 如何在数组中回显特定值?

Php 如何在数组中回显特定值?,php,xml,arrays,Php,Xml,Arrays,我对从某处在线获取的函数有问题,问题是该函数应该返回数组中的特定值,但每当我回显该函数时,它都会以打印\r样式为我提供一个大数组!代码如下:- function USPSParcelRate() { $userName = 'XXXXXXXXXXX'; $orig_zip = '10459'; //Shipping Request $dest_zip = getshipinfo('zip_code'); foreach($_SESSION as $name=> $value){

我对从某处在线获取的函数有问题,问题是该函数应该返回数组中的特定值,但每当我回显该函数时,它都会以
打印\r
样式为我提供一个大数组!代码如下:-

 function USPSParcelRate() {

$userName = 'XXXXXXXXXXX';
$orig_zip = '10459';

//Shipping Request
 $dest_zip = getshipinfo('zip_code');
 foreach($_SESSION as $name=> $value){
        if($value>0){
            if(substr($name, 0, 5)=='cart_'){
     if(substr($name, 0, 5)=='cart_'){
    $id=substr($name, 5, (strlen($name)-5));
     $query = mysql_query("SELECT `category`,`subcategory` FROM `items` WHERE `id`='".mysql_real_escape_string((int)$id)."' ");
     while($query_row = mysql_fetch_assoc($query)){
         $category = $query_row['category'];
         $subcategory = $query_row['subcategory'];
     }
   $sql = mysql_query("SELECT `pounds`,`ounces` FROM `categories` WHERE `category`='".$category."' AND `subcategory`='".$subcategory."' ");
             while($sql_row = mysql_fetch_assoc($sql)){
                $pounds = $sql_row['pounds'];
                $ounces = $sql_row['ounces'];
             }
        }
    }
 }
}
$url = "http://production.shippingapis.com/shippingapi.dll";
$ch = curl_init();

// set the target url
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

// parameters to post
curl_setopt($ch, CURLOPT_POST, 1); 
$data = "API=RateV4&XML=http://production.shippingapis.com/shippingapi.dll=<RateV4Request USERID='151ALHAD4911' >
     <Revision/>
     <Package ID='1ST'>
          <Service>PRIORITY</Service>
          <ZipOrigination>$orig_zip</ZipOrigination>
          <ZipDestination>$dest_zip</ZipDestination>
          <Pounds>$pounds</Pounds>
          <Ounces>$ounces</Ounces>
          <Container>NONRECTANGULAR</Container>
          <Size>LARGE</Size>
          <Width>12</Width>
          <Length>15.5</Length>
          <Height>6</Height>
          <Girth>31</Girth>
     </Package>
</RateV4Request>";

// send the POST values to USPS
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

$result=curl_exec ($ch);
$data = strstr($result, '<?');
// echo '<!-- '. $data. ' -->'; // Uncomment to show XML in comments
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);
$params = array();
$level = array();
foreach ($vals as $xml_elem) {
    if ($xml_elem['type'] == 'open') {
        if (array_key_exists('attributes',$xml_elem)) {
            list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
        } else {
        $level[$xml_elem['level']] = $xml_elem['tag'];
        }
    }
    if ($xml_elem['type'] == 'complete') {
    $start_level = 1;
    $php_stmt = '$params';
    while($start_level < $xml_elem['level']) {
        $php_stmt .= '[$level['.$start_level.']]';
        $start_level++;
    }
    $php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
    eval($php_stmt);
    }
}
curl_close($ch);
//echo '<pre>'; print_r($params); echo'</pre>'; // Uncomment to see xml tags
return $params['RateV4Response']['1ST']['1']['RATE'];

}

echo USPSParcelRate();
如何仅回显此行的值:-

return $params['RATEV4RESPONSE']['1ST'][1]['RATE'];

数组键区分大小写,因此


应该做这件事

非常感谢,它真的节省了我的时间。愿上帝保佑你。如果我还想回显[MAILSERVICE]=>优先邮件3天™, 我怎么做?几乎是一样的:
返回$params['RATEV4RESPONSE']['1ST'][1]['MAILSERVICE']
@user2869402将
['RATE']
更改为
['MAILSERVICE']
。不,我想把这两个值一起呼出['RATE']和['MAILSERVICE']不太确定你要做什么,这将连接两个值并使用空格分隔符打印它们:
echo$params['RATEV4RESPONSE']['1ST'][1]['RATE'].'$参数['RATEV4RESPONSE']['1ST'][1]['MAILSERVICE']
 [RATE] => 14.05
return $params['RATEV4RESPONSE']['1ST'][1]['RATE'];