I have this test code:
<html><pre><?
echo "Versión: ".phpversion(). "\n\n";
$define_list = array(
'PRODUCT_LIST_M ODEL' => 0,
'PRODUCT_LIST_N AME' => 0,
'PRODUCT_LIST_M ANUFACTURER' => 1,
'PRODUCT_LIST_P RICE' => 0,
'PRODUCT_LIST_Q UANTITY' => 1,
'PRODUCT_LIST_W EIGHT' => 1,
'PRODUCT_LIST_I MAGE' => 1,
'PRODUCT_LIST_B UY_NOW' => 1
);
arsort($define_ list);
echo "*** arsort(): ";
print_r($define _list);
echo "\n";
$define_list = array(
'PRODUCT_LIST_M ODEL' => 0,
'PRODUCT_LIST_N AME' => 0,
'PRODUCT_LIST_M ANUFACTURER' => 1,
'PRODUCT_LIST_P RICE' => 0,
'PRODUCT_LIST_Q UANTITY' => 1,
'PRODUCT_LIST_W EIGHT' => 1,
'PRODUCT_LIST_I MAGE' => 1,
'PRODUCT_LIST_B UY_NOW' => 1
);
asort($define_l ist);
echo "*** asort(): ";
print_r($define _list);
echo "\n";
?>
In two different servers I obtain different results:
Versión: 4.1.2
*** arsort(): Array
(
[PRODUCT_LIST_MA NUFACTURER] => 1
[PRODUCT_LIST_QU ANTITY] => 1
[PRODUCT_LIST_WE IGHT] => 1
[PRODUCT_LIST_IM AGE] => 1
[PRODUCT_LIST_BU Y_NOW] => 1
[PRODUCT_LIST_MO DEL] => 0
[PRODUCT_LIST_NA ME] => 0
[PRODUCT_LIST_PR ICE] => 0
)
*** asort(): Array
(
[PRODUCT_LIST_MO DEL] => 0
[PRODUCT_LIST_NA ME] => 0
[PRODUCT_LIST_PR ICE] => 0
[PRODUCT_LIST_MA NUFACTURER] => 1
[PRODUCT_LIST_QU ANTITY] => 1
[PRODUCT_LIST_WE IGHT] => 1
[PRODUCT_LIST_IM AGE] => 1
[PRODUCT_LIST_BU Y_NOW] => 1
)
Versión: 4.2.2
*** arsort(): Array
(
[PRODUCT_LIST_QU ANTITY] => 1
[PRODUCT_LIST_IM AGE] => 1
[PRODUCT_LIST_MA NUFACTURER] => 1
[PRODUCT_LIST_BU Y_NOW] => 1
[PRODUCT_LIST_WE IGHT] => 1
[PRODUCT_LIST_PR ICE] => 0
[PRODUCT_LIST_NA ME] => 0
[PRODUCT_LIST_MO DEL] => 0
)
*** asort(): Array
(
[PRODUCT_LIST_MO DEL] => 0
[PRODUCT_LIST_PR ICE] => 0
[PRODUCT_LIST_NA ME] => 0
[PRODUCT_LIST_BU Y_NOW] => 1
[PRODUCT_LIST_IM AGE] => 1
[PRODUCT_LIST_QU ANTITY] => 1
[PRODUCT_LIST_MA NUFACTURER] => 1
[PRODUCT_LIST_WE IGHT] => 1
)
According to some user contributed notes (manual itself says nothing about
this) I can't expect to maintain the relative order of keys. Yet I can't
find the logic of the algorithm. Why do I get different key sortings in
versions 4.1.2 and 4.2.2?
--
--
-- Álvaro G. Vicario - Burgos, Spain
--
<html><pre><?
echo "Versión: ".phpversion(). "\n\n";
$define_list = array(
'PRODUCT_LIST_M ODEL' => 0,
'PRODUCT_LIST_N AME' => 0,
'PRODUCT_LIST_M ANUFACTURER' => 1,
'PRODUCT_LIST_P RICE' => 0,
'PRODUCT_LIST_Q UANTITY' => 1,
'PRODUCT_LIST_W EIGHT' => 1,
'PRODUCT_LIST_I MAGE' => 1,
'PRODUCT_LIST_B UY_NOW' => 1
);
arsort($define_ list);
echo "*** arsort(): ";
print_r($define _list);
echo "\n";
$define_list = array(
'PRODUCT_LIST_M ODEL' => 0,
'PRODUCT_LIST_N AME' => 0,
'PRODUCT_LIST_M ANUFACTURER' => 1,
'PRODUCT_LIST_P RICE' => 0,
'PRODUCT_LIST_Q UANTITY' => 1,
'PRODUCT_LIST_W EIGHT' => 1,
'PRODUCT_LIST_I MAGE' => 1,
'PRODUCT_LIST_B UY_NOW' => 1
);
asort($define_l ist);
echo "*** asort(): ";
print_r($define _list);
echo "\n";
?>
In two different servers I obtain different results:
Versión: 4.1.2
*** arsort(): Array
(
[PRODUCT_LIST_MA NUFACTURER] => 1
[PRODUCT_LIST_QU ANTITY] => 1
[PRODUCT_LIST_WE IGHT] => 1
[PRODUCT_LIST_IM AGE] => 1
[PRODUCT_LIST_BU Y_NOW] => 1
[PRODUCT_LIST_MO DEL] => 0
[PRODUCT_LIST_NA ME] => 0
[PRODUCT_LIST_PR ICE] => 0
)
*** asort(): Array
(
[PRODUCT_LIST_MO DEL] => 0
[PRODUCT_LIST_NA ME] => 0
[PRODUCT_LIST_PR ICE] => 0
[PRODUCT_LIST_MA NUFACTURER] => 1
[PRODUCT_LIST_QU ANTITY] => 1
[PRODUCT_LIST_WE IGHT] => 1
[PRODUCT_LIST_IM AGE] => 1
[PRODUCT_LIST_BU Y_NOW] => 1
)
Versión: 4.2.2
*** arsort(): Array
(
[PRODUCT_LIST_QU ANTITY] => 1
[PRODUCT_LIST_IM AGE] => 1
[PRODUCT_LIST_MA NUFACTURER] => 1
[PRODUCT_LIST_BU Y_NOW] => 1
[PRODUCT_LIST_WE IGHT] => 1
[PRODUCT_LIST_PR ICE] => 0
[PRODUCT_LIST_NA ME] => 0
[PRODUCT_LIST_MO DEL] => 0
)
*** asort(): Array
(
[PRODUCT_LIST_MO DEL] => 0
[PRODUCT_LIST_PR ICE] => 0
[PRODUCT_LIST_NA ME] => 0
[PRODUCT_LIST_BU Y_NOW] => 1
[PRODUCT_LIST_IM AGE] => 1
[PRODUCT_LIST_QU ANTITY] => 1
[PRODUCT_LIST_MA NUFACTURER] => 1
[PRODUCT_LIST_WE IGHT] => 1
)
According to some user contributed notes (manual itself says nothing about
this) I can't expect to maintain the relative order of keys. Yet I can't
find the logic of the algorithm. Why do I get different key sortings in
versions 4.1.2 and 4.2.2?
--
--
-- Álvaro G. Vicario - Burgos, Spain
--
Comment