1

次の配列があり、キー値に基づいてこの配列をソートする必要があります。すべての数字キーが異なる場合、コードを書いて完璧な結果を得ました。

$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
)
4

1 に答える 1