在过去的3天里,我一直在尝试对数组进行排序,但没有成功。
我首先在php文件和tpl文件中尝试过,但是我无法对数组进行排序。
你能帮帮我吗?
这是我的数组的结构(感谢smaty调试工具!):
Array (5)
attributes => Array (4)
23 => "1L"
24 => "3.5L"
21 => "50ml"
22 => "350ml"
name => "Contenance"
is_color_group => "0"
attributes_quantity => Array (4)
23 => 1
24 => 500
22 => 500
21 => 500
default => 21
我希望通过升序“id”对其进行排序,以获得此类结果:
Array (5)
attributes => Array (4)
21 => "50ml"
22 => "350ml"
23 => "1L"
24 => "3.5L"
name => "Contenance"
is_color_group => "0"
attributes_quantity => Array (4)
21 => 500
22 => 500
23 => 1
24 => 500
default => 21
有你的想法吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
使用uksort:
uksort( $your_array['attributes'], 'my_sort_func' );
uksort( $your_array['attributes_quantity'], 'my_sort_func' );
function my_sort_func( $a, $b )
{
if( $a == $b )
return 0;
return ($a < $b) ? -1 : 1;
}
正如zerkms所说,没有必要使用uksort,因为你只需要一个基本的数字比较。这只需使用ksort():
即可实现ksort( $your_array['attributes'] );
ksort( $your_array['attributes_quantity'] );
当您的密钥无法按其数值排序时,请使用uksort()。例如,字符串。
答案 2 :(得分:0)
ksort($arr['attributes']);
ksort($arr['attributes_quantity']);
答案 3 :(得分:0)
ksort()
将按键排序,维持密钥=&gt;价值关系。您希望对多维数组中的子数组进行排序,而不是整个数组。请参阅下面的代码。
http://www.php.net/manual/en/function.ksort.php
ksort($array['attributes']);
ksort($array['attributes_quantity']);