php - 如何将数组值传递给php变量?
问题描述
我正在为我们当前的运输管理系统开发一个非常小的更新。我应该构建一个 php 脚本来使用 USPS 的 AddressValidate API 来基本上使用给定的地址,并使用 USPS 对其进行验证。当然,USPS 会将格式正确的地址作为数组返回。我的问题是,如何将返回的值转换为每个字段的变量?(即地址 1、地址 2、城市等),然后将结果回显如下
地址1: 123 Happyville Lane
City:匹兹堡
我当前的脚本:(我的详细信息已被 * 掩盖)
<?php
$user = '****';
$xml_data = "<AddressValidateRequest USERID='$user'>" .
"<IncludeOptionalElements>true</IncludeOptionalElements>" .
"<ReturnCarrierRoute>true</ReturnCarrierRoute>" .
"<Address ID='0'>" .
"<FirmName />" .
"<Address1>123 happyville lane</Address1>" .
"<Address2></Address2>" .
"<City>columbus</City>" .
"<State>ohio</State>" .
"<Zip5></Zip5>" .
"<Zip4></Zip4>" .
"</Address>" .
"</AddressValidateRequest>";
$url = "http://production.shippingapis.com/ShippingAPI.dll?API=Verify";
//setting the curl parameters.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// Following line is compulsary to add as it is:
curl_setopt($ch, CURLOPT_POSTFIELDS,
'XML=' . $xml_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
$output = curl_exec($ch);
echo curl_error($ch);
curl_close($ch);
print_r('<pre>');
print_r($array_data);
print_r('</pre>');
echo PHP_EOL;
返回的数组如下:
Array
(
[Address] => Array
(
[@attributes] => Array
(
[ID] => 0
)
[Address2] => 123 HAPPYVILLE LANE
[City] => COLUMBUS
[State] => OH
[Zip5] => 12345
[Zip4] => 1849
[DeliveryPoint] => 18
[CarrierRoute] => AC016
)
)
解决方案
echo "Address1: ".$array_data["Address"]["Address2"]."<br>";
echo "City: ".$array_data["Address"]["City"] //wrong city in example :P
should do the trick or if theres more addresses :
foreach($array_data as $key=>$address){
$address2=$array_data["Address"]["Address2"];//if you need the assignment
echo "Address1: ".$address2."<br>";
echo "City: ".$array_data["Address"]["City"] //wrong city in example :P
}
推荐阅读
- c++ - 为什么基类的成员不保留它在构造函数中首次初始化的值?
- javascript - 意外的标记 '*' 在函数的参数列表之前需要一个开头的 '('
- javascript - 无法使用 Selenium Python 更改表中的选择项
- sql-server - SQL 存储过程 - 将软件日志表与新任务表连接以创建分配
- apache-spark - 在 pyspark 数据框中加载更少的列是否有任何性能(或其他)好处?
- c# - 支持“Equals”重载和隐式运算符的 Expression.Equal 解决方案
- c# - Selenium 自动化与静态页面对象模型
- c# - 如何在不使用旧版驱动程序的情况下在 MongoDB C# 驱动程序 2.1 版中实现 CommandDocument
- c++ - 找到“\ 0”时如何停止读取管道()
- node.js - 玩笑挂在 i18n.configure()