0

人々の名前とそれらに関するいくつかの情報を含む多次元配列をソートしています。私はasort($obj)ファーストネームでアルファベット順にソートするために使用しています(最初に来ます)。それはうまく機能しますが、名前ではなく姓で並べ替える必要があるだけです。ただし、たとえば「Joe Smith」という名前全体は「name」キーの下にあります。名前ではなく姓でソートする必要があります。これどうやってするの?

編集 間違った方法で行ったようです。同じ文字列ではなく、DB の姓と名を別々のフィールドに割り当てるのが最も簡単でした。

4

2 に答える 2

3

使用usort:

function cmp($a, $b)
{
    list($firstNameA, $lastNameA) = explode(" ", $a["name"], 2);
    list($firstNameB, $lastNameB) = explode(" ", $b["name"], 2);

    return strcmp($lastNameA, $lastNameB);
}

usort($array, "cmp");
于 2012-05-07T15:28:41.597 に答える