PHP:从XML字符串提取数据并添加到数组

PHP:从XML字符串提取数据并添加到数组,php,xml,arrays,loops,foreach,Php,Xml,Arrays,Loops,Foreach,我有一个由SQL查询生成的XML字符串,如下所示(缩写)。 我的网站是为了从SQL获取这些信息而建立的,$objRev->reviews->countries将在XML中为每个评论提供countries部分的内容 国家/地区仅包含由逗号和空格分隔的文本(国家/地区名称) 在下面的示例中,我的输入变量是: var1 = "Austria, Belgium, Bulgaria, Croatia, Cyprus"; var2 = "Brazil, Sweden, United Kingdom"; 预

我有一个由SQL查询生成的XML字符串,如下所示(缩写)。 我的网站是为了从SQL获取这些信息而建立的,$objRev->reviews->countries将在XML中为每个评论提供countries部分的内容

国家/地区仅包含由逗号和空格分隔的文本(国家/地区名称)

在下面的示例中,我的输入变量是:

var1 = "Austria, Belgium, Bulgaria, Croatia, Cyprus";
var2 = "Brazil, Sweden, United Kingdom";
预期产量:“奥地利、比利时、巴西、保加利亚、克罗地亚、塞浦路斯、瑞典、英国”

有人能告诉我如何使用PHP将这些变量的内容组合成一个数组并按字母顺序排序吗? 我在这里的挑战是,并非总是有两个变量,它也可以是一个或多个,因为这取决于审查日期是否与给定输入匹配,这里是:2014-04-21-这一指标是
dateMatch='Yes'

<root>
  <reviews>
    <review>2014-04-21</review>
    <revLong>21 Apr 2014</revLong>
    <revShort>2014-04-21</revShort>
    <dayDiff>0</dayDiff>
    <revStatus>past</revStatus>
    <countries>Austria, Belgium, Bulgaria, Croatia, Cyprus</countries>
    <dateMatch>Yes</dateMatch>
    <countryMatch>Yes</countryMatch>
  </reviews>
  <reviews>
    <review>2014-04-21</review>
    <revLong>21 Apr 2014</revLong>
    <revShort>2014-04-21</revShort>
    <dayDiff>0</dayDiff>
    <revStatus>past</revStatus>
    <countries>Brazil, Sweden, United Kingdom</countries>
    <dateMatch>Yes</dateMatch>
    <countryMatch>No</countryMatch>
  </reviews>
</root>

2014-04-21
2014年4月21日
2014-04-21
0
过去的
奥地利、比利时、保加利亚、克罗地亚、塞浦路斯
对
对
2014-04-21
2014年4月21日
2014-04-21
0
过去的
巴西、瑞典、联合王国
对
不

非常感谢你在这方面的帮助,蒂姆

像这样简单的事情。。使用

输出:

Austria, Belgium, Brazil, Bulgaria, Croatia, Cyprus, Sweden, United Kingdom

尝试使用数组合并、排序和数组独特功能:

$all = array_unique(sort(array_merge($var1, $var2)));

非常感谢,这非常有效-我只需在您的答案中替换foreach,如下所示,以限制我感兴趣的日期:如果($child->dateMatch==“Yes”){$cnt[]=explode(,,,,$child->countries);}-您能解释一下“call_user_func_array”在这里做什么吗?@user2571510,结果是在嵌套数组下生成的,因此,
call\u user\u func\u array
使用一个
array\u merge
来合并这些数组。您可以使用一个
array\u walk
。。添加这个
array\u walk($arr,函数(&$v){$v='.$v;})排序后的code>($arr)在调用
sort()
后需要使用此选项<代码>数组_walk($arr,函数(&$v){$v=”“.$v;})太棒了-非常感谢!真的很欣赏它,而且效果很好。:)
sort()
返回一个布尔值,您不能将其传递给
array\u unique
。这是行不通的。
$all = array_unique(sort(array_merge($var1, $var2)));