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

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

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

このQ&Aに関連する最新のQ&A

A 回答 (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;
}
-----------------------------------------
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/12/06 14:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング