出力結果がぱっと出てこなかったので、実際に書いてみました。
//無名関数1
$array=array("really long string hear, boy","this","middling length","larger");
usort($array,function($a,$b)
{
return strlen($a) - strlen($b);
});
print_r($array);
出力結果(usortで並び替え)
Array ( [0] => this [1] => larger [2] => middling length [3] => really long string hear, boy )
//無名関数2
$array=array(“really long string hear, boy”,”this”,”middling length”,”larger”);
$sortOption=’random’;
usort($array,function($a,$b) use ($sortOption){
if($sortOption==’random’){
//ランダムにソートするため-1 0 1のいずれかの値を無作為に返します
return rand(0, 2) -1;
}else{
return strlen($a) – strlen($b);
}
});
print_r($array);
出力結果(ランダムなので結果は変わる)
Array ( [0] => really long string hear, boy [1] => this [2] => middling length [3] => larger )
Array ( [0] => really long string hear, boy [1] => this [2] => larger [3] => middling length )
//無名関数3
$array=array(“really long string hear, boy”,”this”,”middling length”,”larger”);
$sortOption=’random’;
function sortNonrandom($array)
{
$sortOption=false;
usort($array,function($a,$b) use ($sortOption){
if($sortOption=='random')
{
//ランダムにソートするため-1 0 1のいずれかの値を無作為に返します
return rand(0, 2) -1;
}else{
return strlen($a) - strlen($b);
}
});
print_r($array);
}
print_r(sortNonrandom($array));
出力結果(通常の並び替え)
Array ( [0] => this [1] => larger [2] => middling length [3] => really long string hear, boy )
無名関数1と3は出力結果は同じものになりました。