次のような結果になる配列があります: a = laranja b = バナナ c = maçã d = limao
今、並べ替えたいのですが、d、c、b、a のような論理的なものはありません。好きなように並べ替えたいだけです。a、d、c、b または、c、a、b、d のいずれかです。
ソート、マルチソートを試しましたが、成功しませんでした。
何かアドバイスはありますか?
ここにコードを貼り付けて、役立つかどうかを確認します
sort()を参照
$yourArray;
sort($yourArray);
print_r($yourArray);
// Now alphabetical
また、必要に応じて値をソートする関数を作成する場合は、usort()を使用します。
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>
0: 1
1: 2
2: 3
3: 5
4: 6
編集:
foreach ステートメントは kaput です。
<?php
function cmp($a, $b)
{
if ($a == $b)
{
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array("d"=>"limao", "a"=>"laranja", "b" =>"banana", "c"=>"maçã");
print_R($a);
usort($a, "cmp");
print_R($a);
?>
出力:
Array
(
[d] => limao
[a] => laranja
[b] => banana
[c] => maçã
)
Array
(
[0] => banana
[1] => laranja
[2] => limao
[3] => maçã
)
おそらくsort_order
、数値の重みを持つようなものと呼ばれる配列に別のエントリを追加し、それで並べ替える必要があります。
お気に入り:
Array (
Array ( 'name' => 'test', 'sort' => 1 ),
Array ( 'name' => 'test test', 'sort' => 2 )
);