在循环之前创建和排序数组

时间:2014-12-19 10:07:39

标签: php arrays xml usort

我需要从XML响应创建一个数组,然后按现有XML字段之一进行排序。

我已经解析了XML,最终得到了我在foreach循环中需要的3个值。

$optionsArray = array();

foreach ($options as $key => $option) {
  $price = $option->Price;
  $shortDesc = $option->ShortDescription;
  $longDesc = $option->LongDescription;

  $optionsArray[] = array('shortdesc' => $shortDesc, 'longdesc' => $longDesc, 'price' => $price);
}

这很好用,但现在我希望使用'price'值(降序)来命令数组,然后我可以正确显示这些项目。

我已经调查了usort和arsort以及所有其他但是没有意义。使用我的代码获取帮助的任何示例?

感谢。

1 个答案:

答案 0 :(得分:1)

应该做的伎俩

$sortArr = array();
$optionsArray = array();
foreach ($options as $key => $option) {
    $price = $option->Price;
    $shortDesc = $option->ShortDescription;
    $longDesc = $option->LongDescription;

    $optionsArray[] = array('shortdesc' => $shortDesc, 'longdesc' => $longDesc, 'price' => $price);
    $sortArr[] = $price;
}

array_multisort($sortArr, SORT_ASC, $optionsArray);