0

これはオブジェクトを含む私の配列です:

配列 (
[0] => stdClass オブジェクト ( [id] => 64 [名前] => 1 月 [エイリアス] => 1 月 [説明] => 01)
[0] => stdClass オブジェクト ( [id] => 64 [名前] => 1 月 [エイリアス] => 1 月 [説明] => 01)
[1] => stdClass オブジェクト ( [id] => 65 [名前] => 2 月 [エイリアス] => 2 月 [説明] => 02 )
...

どうすれば今月から自然に並べ替えることができるので、今日は 10 月、11 月、12 月、1 月 ..

したがって、この例では次のようになります。

配列 (
[0] => stdClass オブジェクト ( [id] => 73 [名前] => 10 月 [エイリアス] => 10 月 [説明] => 10)
[0] => stdClass オブジェクト ( [id] => 64 [名前] => 1 月 [エイリアス] => 1 月 [説明] => 01)
[1] => stdClass オブジェクト ( [ID] => 74 [名前] => 11 月 [エイリアス] => 11 月 [説明] => 11 ) ...

これを行う方法がわかりません。

4

2 に答える 2

0

オブジェクト配列が常に jan で始まり、各月に 12 個の要素がある場合は、これを試してください。これはおそらく最も効率的な方法ではありません。

$curMonth = date("n")-1;
$out = array();

for($i = 0; $i < 12; $i++)
  {
  $index = ( $i + $curMonth ) % 12;
  $out[$i] = $YourObjectArray[$index]
  }

print_r($out);
于 2013-10-16T07:01:51.470 に答える
0

月が今より「小さい」かどうかを確認してから、配列の最後に入れます。

$arr[] = array('name'=>'jan', 'desc' => '01');
$arr[] = array('name'=>'feb', 'desc' => '02');
$arr[] = array('name'=>'mar', 'desc' => '03');
$arr[] = array('name'=>'apr', 'desc' => '04');
$arr[] = array('name'=>'may', 'desc' => '05');
$arr[] = array('name'=>'jun', 'desc' => '06');
$arr[] = array('name'=>'jul', 'desc' => '07');
$arr[] = array('name'=>'aug', 'desc' => '08');
$arr[] = array('name'=>'sep', 'desc' => '09');
$arr[] = array('name'=>'oct', 'desc' => '10');
$arr[] = array('name'=>'nov', 'desc' => '11');
$arr[] = array('name'=>'dec', 'desc' => '12');

foreach($arr as $i=>$y){
    if($y['desc'] != date('m')){
        unset($x[$i]);
        $arr[] = $y;
    }
    else{
        break;
    }
}
$arr = array_values($arr);
于 2013-10-16T07:06:40.753 に答える