【问题标题】:How to order (sort) a numeric value using simpleXML and PHP如何使用 simpleXML 和 PHP 对数值进行排序(排序)
【发布时间】:2010-07-23 16:05:56
【问题描述】:

我正在使用 simplexml 从 XML 引擎中提取数据,当我尝试对数据进行 ASC 或 DESC 时,我完全卡住了。

请注意,我不是自己编写这些值,而是从其他来源提取它们。

我收到了对类似问题的另一个回复,我以这个为例(有效):

$d =  new SimpleXMLElement('<root>
  <item>
    <price>1234</price>
  </item>
  <item>
    <price>4123</price>
  </item>
  <item>
    <price>3142</price>
  </item>
  <item>
    <price>2431</price>
  </item>
</root>');
$items = array();
foreach($d->item as $item) $items[] = $item;
function _mysort($a,$b){return $a->price - $b->price;}
usort($items,'_mysort');
var_dump($items);

问题是我不知道如何将数据自动写入根 /item /price.... 部分。

这是一个酒店搜索引擎,一些酒店先付费,但我希望用户能够按价格 ASC 或 DESC 查看酒店,所以我认为我应该在服务器上列出内存中的酒店(对不起,我缺少编码器俚语),然后按价格订购并打印出来。

我能得到一些帮助吗?

这就是我正在做的:

为你分配一个变量

$url ="http://www.somedomain.com/cgi/xml/engine/get_data.php?ref=$ref&checkin=$checkin&checkout=$checkout&rval=$rval&pval=$pval&country=$country&city=$city&lg=$lg&sort=desc";

创建我的新 SimpleXML

$all = new SimpleXMLElement($url, null, true);

循环显示所有酒店:

foreach($all as $hotel) // loop through our hotels {

并将结果与​​酒店相呼应,包括价格、描述、名称、地址等。

echo <<<EOF

如果周围有人可以帮助我或向我展示如何将 xml 值写入示例中,我认为我已经完成了!

【问题讨论】:

  • 是否 $url ="somedomain.com/.......&sort=desc";返回 XML?您的网址中的 &sort=desc 有什么作用?这不是已经为您排序结果了吗?根据您所写的内容,我认为您会返回一个 XML 文件,其中包含已排序的酒店。
  • “root /item /price.... 部分”这是 XML,为什么要这样写?这不是你在变量 $url 中返回的吗?
  • 不。已经试过了=(/嗯,是xml引擎,不是searc引擎=(
  • 我只需要一个标签,即“minCostOfStay”,但我不知道该怎么做,已经尝试过 $hotel->minCostOfStay,但似乎没有在这种情况下工作
  • 也许我不是在解释我自己好。如何提取该变量并将其放在“手动”书面部分?

标签: php xml sorting


【解决方案1】:

你的问题不是很清楚。

我假设您从您的网址返回了一个 XML 文件。 然后你遍历它并从中取出元素。

我建议你看看这个post,它可能会帮助你解决你的问题。

或者,您可能想要获取每个 XML 值并将它们存储在 php stdClass 中,然后您可以根据任何字段对该对象进行排序。

【讨论】:

  • =( 不是因为它不知道如何获取 var 的数值并显示如何按值对它们进行排序。
  • 真的很难理解你在问什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-28
相关资源
最近更新 更多