次の配列があり、キー値に基づいてこの配列をソートする必要があります。すべての数字キーが異なる場合、コードを書いて完璧な結果を得ました。
$myarray_need_to_sort =Array
(
[13] => 214
[14] => 215
[15] => 216
[21] => 223
)
これが私のコードです
$order = array();
foreach ($myarray_need_to_sort as $value){
$cat = Mage::getModel('catalog/category')->load($value);
$order[$cat->getTabOrder()] = $value;
}
ksort($order);
$sorted_order = array();
foreach ($order as $key=>$value)
{
$sorted_order[$key] = $value;
}
print_r($sorted_order);
$cat->getTabOrder() は、バックエンドから取得しているソート順であり、結果は完璧です
Array
(
[1] => 216
[2] => 223
[3] => 215
[4] => 214
)
コードは配列を完全に並べ替えていますが、同じキーが存在する場合、つまり誰かが $cat->getTabOrder() を追加した場合、2 つの値に対して 2 と 2 を追加すると、1 つのキーが削除されます。このように1つの増分を追加する必要があります
Array
(
[1] => 216
[2] => 223
[2] => 215 -- it should be 3 and 4 should be 5 but it is removing 2 from here
[4] => 214 -- should be 5
)