Php 在Foreach数组中保存XML响应/按字母顺序排列

Php 在Foreach数组中保存XML响应/按字母顺序排列,php,xml,sorting,foreach,rss,Php,Xml,Sorting,Foreach,Rss,我是php新手,我做这个项目是为了教自己一点 我正在从Reuters RSS提要导入XML数据,并希望按字母顺序对所有响应的内容进行排序。我使用foreach循环将我想要的信息加载到页面上没有问题,但是我使用的排序系统将每个xml标题中的单词单独按字母顺序排列,而不是作为一个字符串一起排列 在foreach循环收集到所有响应后,如何将它们分组或保存在一起,以便将它们作为一个整体进行排序 以下是我目前掌握的情况: <?php function getFeed($feed_url) { $

我是php新手,我做这个项目是为了教自己一点

我正在从Reuters RSS提要导入XML数据,并希望按字母顺序对所有响应的内容进行排序。我使用foreach循环将我想要的信息加载到页面上没有问题,但是我使用的排序系统将每个xml标题中的单词单独按字母顺序排列,而不是作为一个字符串一起排列

在foreach循环收集到所有响应后,如何将它们分组或保存在一起,以便将它们作为一个整体进行排序

以下是我目前掌握的情况:

<?php

function getFeed($feed_url) {

$content = file_get_contents($feed_url);
$x = new SimpleXmlElement($content);
$string = $x->channel->item ;

echo "<p>";

foreach($x->channel->item as $entry) {
    $string = $entry->title;
    $split=explode(" ", $string); 
    sort($split); // sorts the elements
    echo implode(" ", $split); //combine and print the elements 
}

echo "</p>";

}?>

考虑将标题保存到数组中,对其值进行排序,然后迭代返回以获得
echo
输出:

$content = file_get_contents("http://feeds.reuters.com/Reuters/PoliticsNews");
$x = new SimpleXmlElement($content);

$titles = [];
foreach($x->channel->item as $entry) {
    $titles[] = $entry->title;
}

sort($titles, SORT_NATURAL | SORT_FLAG_CASE);   # CASE INSENSITIVE SORT

foreach($titles as $t) {
    echo "<p>". $t ."</p>";
}

# <p>Ex-Illinois Governor Blagojevich's 14-year prison term upheld</p>
# <p>Exxon probe is unconstitutional, Republican prosecutors say</p>
# <p>Group sues Trump for repealing U.S. wildlife rule in rare legal challenge</p>
# <p>Indian techies, IT firms fret as Trump orders U.S. visa review</p>
# <p>Trump, Republicans face tricky task of averting U.S. government shutdown</p>
# <p>Trump administration may change rules that allow terror victims to immigrate to U.S.</p>
# <p>U.S. House committee sets more hearings in Trump-Russia probe</p>
# <p>U.S. judicial panel finds Texas hurt Latino vote with redrawn boundaries</p>
# <p>U.S. retailers bet on Congress over Bolivia to thwart Trump  border tax issue</p>
# <p>U.S. Treasury's Mnuchin: Trump to order reviews of financial rules</p>
$content=file\u get\u contents(“http://feeds.reuters.com/Reuters/PoliticsNews");
$x=新的SimpleXmlElement($content);
$titles=[];
foreach($x->channel->item as$entry){
$titles[]=$entry->title;
}
排序($titles,sort_NATURAL | sort_FLAG_CASE);#不区分大小写排序
foreach(标题为$t){
回声“”$t.

”; } #前伊利诺伊州州长布拉戈耶维奇14年监禁维持不变

#共和党检察官说,埃克森美孚的调查是违宪的

#该组织起诉特朗普在罕见的法律挑战中废除了美国野生动物规则

#特朗普下令对美国签证进行审查,印度技术人员、IT公司感到不安

#特朗普,共和党人面临着避免美国政府关门的棘手任务

#特朗普政府可能会改变允许恐怖受害者移民到美国的规定

#美国众议院委员会就特朗普对俄罗斯的调查举行更多听证会

#美国司法委员会发现德克萨斯州拉美裔选民重新划定选区

#美国零售商押注国会而不是玻利维亚来阻挠特朗普边境税问题

#美国财政部的努钦:特朗普将下令对金融规则进行审查


考虑将标题保存到数组中,对其值进行排序,然后迭代返回以获得
echo
输出:

$content = file_get_contents("http://feeds.reuters.com/Reuters/PoliticsNews");
$x = new SimpleXmlElement($content);

$titles = [];
foreach($x->channel->item as $entry) {
    $titles[] = $entry->title;
}

sort($titles, SORT_NATURAL | SORT_FLAG_CASE);   # CASE INSENSITIVE SORT

foreach($titles as $t) {
    echo "<p>". $t ."</p>";
}

# <p>Ex-Illinois Governor Blagojevich's 14-year prison term upheld</p>
# <p>Exxon probe is unconstitutional, Republican prosecutors say</p>
# <p>Group sues Trump for repealing U.S. wildlife rule in rare legal challenge</p>
# <p>Indian techies, IT firms fret as Trump orders U.S. visa review</p>
# <p>Trump, Republicans face tricky task of averting U.S. government shutdown</p>
# <p>Trump administration may change rules that allow terror victims to immigrate to U.S.</p>
# <p>U.S. House committee sets more hearings in Trump-Russia probe</p>
# <p>U.S. judicial panel finds Texas hurt Latino vote with redrawn boundaries</p>
# <p>U.S. retailers bet on Congress over Bolivia to thwart Trump  border tax issue</p>
# <p>U.S. Treasury's Mnuchin: Trump to order reviews of financial rules</p>
$content=file\u get\u contents(“http://feeds.reuters.com/Reuters/PoliticsNews");
$x=新的SimpleXmlElement($content);
$titles=[];
foreach($x->channel->item as$entry){
$titles[]=$entry->title;
}
排序($titles,sort_NATURAL | sort_FLAG_CASE);#不区分大小写排序
foreach(标题为$t){
回声“”$t.

”; } #前伊利诺伊州州长布拉戈耶维奇14年监禁维持不变

#共和党检察官说,埃克森美孚的调查是违宪的

#该组织起诉特朗普在罕见的法律挑战中废除了美国野生动物规则

#特朗普下令对美国签证进行审查,印度技术人员、IT公司感到不安

#特朗普,共和党人面临着避免美国政府关门的棘手任务

#特朗普政府可能会改变允许恐怖受害者移民到美国的规定

#美国众议院委员会就特朗普对俄罗斯的调查举行更多听证会

#美国司法委员会发现德克萨斯州拉美裔选民重新划定选区

#美国零售商押注国会而不是玻利维亚来阻挠特朗普边境税问题

#美国财政部的努钦:特朗普将下令对金融规则进行审查


您要做的是用所有单词构建一个数组,然后在最后对其排序

<?php

function getFeed($feed_url) {    
    $content = file_get_contents($feed_url);
    $x = new SimpleXmlElement($content);
    $titles = "";
    foreach($x->channel->item as $entry) {
        $titles .= " $entry->title";
    }
    $split = explode(" ", $titles); 
    sort($split, SORT_FLAG_CASE | SORT_NATURAL);
    return trim(implode(" ", $split));
}

$words = getFeed("http://feeds.reuters.com/Reuters/PoliticsNews");

echo "<p>$words</p>";

您要做的是构建一个包含所有单词的数组,然后在最后对其进行排序

<?php

function getFeed($feed_url) {    
    $content = file_get_contents($feed_url);
    $x = new SimpleXmlElement($content);
    $titles = "";
    foreach($x->channel->item as $entry) {
        $titles .= " $entry->title";
    }
    $split = explode(" ", $titles); 
    sort($split, SORT_FLAG_CASE | SORT_NATURAL);
    return trim(implode(" ", $split));
}

$words = getFeed("http://feeds.reuters.com/Reuters/PoliticsNews");

echo "<p>$words</p>";

没有XML示例很难提供帮助,因为这些变量可能意味着任何东西!另外,我对这种独特的排序很感兴趣:将每个xml标题中的单词单独按字母顺序排列,而不是作为一个字符串一起排列。所以它改变了每个标题中的单词?我使用的XML文档在这里:我把标题按字母顺序排列的意思是:“政府允许避免改变面对政府移民印度共和党人的五月规则关闭任务技术人员害怕狡猾的特朗普特朗普美国受害者”
而不是。。。“特朗普政府可能会改变允许恐怖受害者移民到美国印度技术人员的规定特朗普,共和党人面临着避免美国政府关门的棘手任务”我希望这是有意义的。。。我不熟悉堆栈溢出,正在努力解决如何格式化我的响应以使其易于理解。没有XML示例很难帮助我,因为这些变量可能意味着任何东西!另外,我对这种独特的排序很感兴趣:将每个xml标题中的单词单独按字母顺序排列,而不是作为一个字符串一起排列。所以它改变了每个标题中的单词?我使用的XML文档在这里:我把标题按字母顺序排列的意思是:“政府允许避免改变面对政府移民印度共和党人的五月规则关闭任务技术人员害怕狡猾的特朗普特朗普美国受害者”
而不是。。。“特朗普政府可能会改变允许恐怖受害者移民到美国印度技术人员的规定特朗普,共和党人面临着避免美国政府关门的棘手任务”我希望这是有意义的。。。我是堆栈溢出的新手,正在努力解决如何格式化我的响应以使它们易于理解。啊,就是这样!谢谢。啊,就是这个!非常感谢。