こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

2次元配列のソート方法

配列ソートに関して教えて頂きたいのですが、次のような配列を降順でソートするにはどのようなコードを書けば良いのでしょうか。

$a[] = array(4 => "four");
$a[] = array(3 => "three");
$a[] = array(20 => "twenty");
$a[] = array(10 => "ten");

usortなどを試したのですが、知識不足のためかどうも上手く動きません。
以上、よろしくお願いします。

投稿日時 - 2001-10-21 16:52:40

QNo.154964

困ってます

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

「4. 3. 20. 10」をキーとして降順にソートする場合、次のようなコードでできます。

-----------------------------------------
$a[] = array(4 => "four");
$a[] = array(3 => "three");
$a[] = array(20 => "twenty");
$a[] = array(10 => "ten");

usort( $a, funcSort );

while( list( $key, $value ) = each( $a ) ){
  echo( $key );
  echo( ":" );

  list( $key1, $value1 ) = each( $value );
  echo( $key1 );
  echo( ":" );
  echo( $value1 );
  echo( "<br>" );
}

functionfuncSort( $a, $b ){
  reset( $a );
  reset( $b );

  list( $key1, $value1 ) = each( $a );
  list( $key2, $value2 ) = each( $b );

  if ( $key1 == $key2 ){
    return 0;
  }
  return ( $key1 > $key2 ) ? -1 : 1;
}
-----------------------------------------

投稿日時 - 2001-12-01 16:10:36

お礼

ありがとうございました。
それと返事遅れてしまい申し訳ありません。

投稿日時 - 2001-12-06 14:27:27