0

次の配列があります。

items = array(
        'note' => array(),
        'text' => array(),
        'year' => array()
        )

ので、私は持っています:

[note] => Array
(
   [0] => 'note1'
   [1] => 'note2'
   [2] => 'note3'
), 
[text] => Array
(
   [0] => 'text1'
   [1] => 'text2'
   [2] => 'test3'
), 
[year] => Array
(
   [0] => '2002'
   [1] => '2000'
   [2] => '2011'
)

そして、上記の配列を年ごとに並べたいと思います。しかし、要素を移動するときは、対応する要素を他の配列(メモ、テキスト)に移動したいと思います。

例えば:

[note] => Array
(
   [2] => 'note3'
   [0] => 'note1'
   [1] => 'note2'
), 
[text] => Array
(
   [2] => 'text3'
   [0] => 'text1'
   [1] => 'test2'
), 
[year] => Array
(
   [2] => '2011'
   [0] => '2002'
   [1] => '2000'
)
4

2 に答える 2

4

最初に年の部分を抽出し、 arsort()を使用してキーを維持しながら、値で並べ替えます。

$yearData = $array['year'];
arsort($yearData);//sort high-to-low by value, while maintain it's key.

最後に、この新しくソートされた年を使用してデータをソートします。

$newArray['note'] = array();
$newArray['text'] = array();
$newArray['year'] = array();

foreach($yearData as $key => $value){
    $newArray['note'][$key] = $array['note'][$key];
    $newArray['text'][$key] = $array['text'][$key];
    $newArray['year'][$key] = $array['year'][$key];
}

参考までに、PHP には配列の並べ替えを処理する関数がたくさんあります

于 2012-06-12T10:03:36.757 に答える
0

配列のより良い編成は次のようになると思います。

[0] => Array(
    'note' => note1, 'text' => 'text1', 'year' => '2002)
[1] => Array(
    'note' => note2, 'text' => 'text2', 'year' => '2000)
[2] => Array(
    'note' => note3, 'text' => 'text4', 'year' => '2011)

このようにして、関連する各アイテムがまとめられ、目的のタイプで簡単に並べ替えることができます。

$items = array(
    array(
        'note' => value,
        'text' => value,
        'year' => value
        ),
    array(
        'note' => value,
        'text' => value,
        'year' => value
        )
    )
于 2012-06-12T10:01:33.967 に答える