0

私はこの構造に従っているPHPの配列を持っています:

$soap->progress = `

0 =>
object(stdClass)#3 (5) {
  ["step"]=>
  int(6)
  ....
}

1 =>
object(stdClass)#4 (5) {
  ["step"]=>
  int(8)

....

}

2 =>
object(stdClass)#5 (5) {
  ["step"]=>
  int(1)

....

}

3 =>
object(stdClass)#6 (5) {
  ["step"]=>
  int(4)

....

}

4 =>
object(stdClass)#7 (5) {
  ["step"]=>
  int(3)
....
}


.... and so on

これをどのように並べ替えます$soap->progress[x]->stepか?

4

2 に答える 2

2

並べ替える必要のあるこれらのオブジェクトの配列がある場合は、usort関数を使用して独自のカスタム並べ替えコールバックを定義できます。

usort($arrayOfObjects, function($a, $b) {
  if($a->step == $b->step) {
    return 0;
  else if($a->step > $b->step) {
    return -1;
  } else {
    return 1;
  }
});
于 2013-02-16T22:14:16.297 に答える
1

usort()を使用します。

function sortByStep($a, $b)
{
    if ($a->step == $b->step) {
        return 0;
    }
    return ($a->step < $b->step) ? -1 : 1;
}

usort($array, "sortByStep");
于 2013-02-16T22:13:38.647 に答える