配列を文字数順に並び替える方法
配列を文字数順に並び替えるには、array_multisort()とarray_map()とstrlen()を組み合わせましょう。
サンプルコード
SORT_ASC(昇順)、SORT_DESC(降順)を目的で使い分けて下さい。元の配列が変更されます。
一次元配列
<?php
$array = [ "aaa", "b", "cccc", "dd" ] ;
array_multisort( array_map( "strlen", $array ), SORT_ASC, $array ) ;
多次元配列
array_column()の引数に、対象のキー名を指定します。
<?php
$array = [
[
"A" => "aaa",
"B" => "hoge" ,
] ,
[
"A" => "b",
"B" => "fuga" ,
] ,
[
"A" => "cc",
"B" => "piyo" ,
] ,
] ;
array_multisort( array_map( "strlen", array_column( $array, "A" ) ), SORT_ASC, $array ) ;
デモ
一次元配列の場合
昇順
<?php
/*** このコードは編集できます。 ***/
$array = [ "aaa", "b", "cccc", "dd" ] ;
array_multisort( array_map( "strlen", $array ), SORT_ASC, $array ) ;
var_dump( $array ) ;
降順
<?php
/*** このコードは編集できます。 ***/
$array = [ "aaa", "b", "cccc", "dd" ] ;
array_multisort( array_map( "strlen", $array ), SORT_DESC, $array ) ;
var_dump( $array ) ;
多次元配列の場合
昇順
<?php
/*** このコードは編集できます。 ***/
$array = [
[
"A" => "aaa",
"B" => "hoge" ,
] ,
[
"A" => "b",
"B" => "fuga" ,
] ,
[
"A" => "cc",
"B" => "piyo" ,
] ,
] ;
array_multisort( array_map( "strlen", array_column( $array, "A" ) ), SORT_ASC, $array ) ;
var_dump( $array ) ;
降順
<?php
/*** このコードは編集できます。 ***/
$array = [
[
"A" => "aaa",
"B" => "hoge" ,
] ,
[
"A" => "b",
"B" => "fuga" ,
] ,
[
"A" => "cc",
"B" => "piyo" ,
] ,
] ;
array_multisort( array_map( "strlen", array_column( $array, "A" ) ), SORT_DESC, $array ) ;
var_dump( $array ) ;
関連記事
- 配列を数値順に並び替える方法
- 配列を数値順に並び替えるには、sort()やarray_multisort()を利用しましょう。
- ディレクトリのファイルを一覧で取得する方法
- ディレクトリ内にある全ファイルを取得するには、whileとreaddir()を組み合わせます。
- 配列を時間順に並び替える方法
- 配列を時間順に並び替えるには、array_multisort()とarray_map()とstrtotime()と組み合わせましょう。
- 四捨五入、切り捨て、切り上げをする方法
- 切り捨てはfloor()、切り上げはceil()、四捨五入はround()の関数を利用します。
- 配列から要素をランダムで取得する方法
- 配列から要素をランダムで取得するには、array_rand()を利用します。
- 最大公約数を求める方法
- PHPで最大公約数を求めるには、array_reduce()を利用しましょう。