0

私は配列を持っています。次のようになります。

[1=Name][2=Type][3=Company][4=State][5=Date]

[6=Name][7=Type][8=Company][9=State][10=Date]

[11=Name][12=Type][13=Company][14=State][15=Date]

ここで、AZ 順で 5 つの値ごとに名前で並べ替えたいと思います。そのため、ソート[1=Name][2=Type][3=Company][4=State][5=Date]が必要な 1 行と[6=Name][7=Type][8=Company][9=State][10=Date]見なされ、2 行目と見なされます。そして、それらは名前でソートする必要があり、[1]& [6]...

そのようなケースに遭遇したことがないため、解決策を見つけるのに苦労しています。

何か案は?

4

1 に答える 1

0

質問はあまり明確ではありません 期待される出力の明確な例をいくつか提供してください。私が理解したものは何でも、次のようなコードを試すことができます:

$arr=array("1" => "name1", "2" => "game4", "3" => "game10", "4" => "game2",
   "5" => "game3", "6" => "name4", "7" => "game4", "8" => "game10",
   "9" => "game2", "10" => "game3", "11" => "name3", "12" => "game4",
   "13" => "game10", "14" => "game2", "15" => "game3");
$narr = array();
for ($i=0; $i<count($arr)/5; $i++)
   $narr[] = array_slice($arr, $i * 5, 5, true);
function cmp($a, $b) {
    return strcmp(reset($a), reset($b));
}
uasort($narr, 'cmp');
print_r($narr);

出力:

Array
(
    [0] => Array
        (
            [1] => name1
            [2] => game4
            [3] => game10
            [4] => game2
            [5] => game3
        )
    [2] => Array
        (
            [11] => name3
            [12] => game4
            [13] => game10
            [14] => game2
            [15] => game3
        )
    [1] => Array
        (
            [6] => name4
            [7] => game4
            [8] => game10
            [9] => game2
            [10] => game3
        )
)
于 2013-02-19T12:22:30.503 に答える