2011-11-16 136 views
0

我正在尝试通过Ubercart order.tpl.php文件中的每个stdClass对象的[标题]对这个数组进行排序。我试过只做一个普通的排序,但是因为它们都是stdClass对象,它什么也不做。用stdClass对象对数组排序

<pre>Array 
(
[0] => stdClass Object 
    (
     [order_product_id] => 1157 
     [order_id] => 142 
     [nid] => 38 
     [title] => Eatonville Forest Camping Permit 
     [manufacturer] => 
     [model] => eatonville-camp-permit 
     [qty] => 1 
     [cost] => 9.00000 
     [price] => 10.00000 
     [weight] => 0 
     [data] => Array 
      (
       [attributes] => Array 
        (
        ) 

       [shippable] => 0 
       [restrict_qty] => 1 
       [module] => uc_product 
      ) 

     [order_uid] => 13 
    ) 

[1] => stdClass Object 
    (
     [order_product_id] => 1158 
     [order_id] => 142 
     [nid] => 35 
     [title] => Eatonville Forest Motorized Recreation Access Permit and Release of Liability 
     [manufacturer] => 
     [model] => eatonville-motor-rec-access 
     [qty] => 1 
     [cost] => 175.00000 
     [price] => 175.00000 
     [weight] => 0 
     [data] => Array 
      (
       [attributes] => Array 
        (
        ) 

       [shippable] => 1 
       [restrict_qty] => 1 
       [module] => uc_product 
      ) 

     [order_uid] => 13 
    ) 

[2] => stdClass Object 
    (
     [order_product_id] => 1159 
     [order_id] => 142 
     [nid] => 31 
     [title] => Snoqualmie Forest Non-motorized Recreation Access Permit for Families and Release of Liability 
     [manufacturer] => 
     [model] => snoqualmie-family-non-motor-rec-access 
     [qty] => 1 
     [cost] => 150.00000 
     [price] => 150.00000 
     [weight] => 0 
     [data] => Array 
      (
       [attributes] => Array 
        (
        ) 

       [shippable] => 1 
       [restrict_qty] => 1 
       [module] => uc_product 
      ) 

     [order_uid] => 13 
    ) 

[3] => stdClass Object 
    (
     [order_product_id] => 1160 
     [order_id] => 142 
     [nid] => 40 
     [title] => Snoqualmie Forest Camping Permit 
     [manufacturer] => 
     [model] => snoqualmie-camp-permit 
     [qty] => 1 
     [cost] => 300.00000 
     [price] => 300.00000 
     [weight] => 0 
     [data] => Array 
      (
       [attributes] => Array 
        (
        ) 

       [shippable] => 1 
       [restrict_qty] => 1 
       [module] => uc_product 
      ) 

     [order_uid] => 13 
    ) 

[4] => stdClass Object 
    (
     [order_product_id] => 1161 
     [order_id] => 142 
     [nid] => 39 
     [title] => White River Forest Camping Permit 
     [manufacturer] => 
     [model] => whiteriver-camp-permit 
     [qty] => 1 
     [cost] => 300.00000 
     [price] => 300.00000 
     [weight] => 0 
     [data] => Array 
      (
       [attributes] => Array 
        (
        ) 

       [shippable] => 1 
       [restrict_qty] => 1 
       [module] => uc_product 
      ) 

     [order_uid] => 13 
    ) 

[5] => stdClass Object 
    (
     [order_product_id] => 1162 
     [order_id] => 142 
     [nid] => 30 
     [title] => White River Forest Family Non-motorized Recreation Access Permit for Families and Release of Liability 
     [manufacturer] => 
     [model] => whiteriver-family-non-motor-rec-access 
     [qty] => 1 
     [cost] => 150.00000 
     [price] => 150.00000 
     [weight] => 0 
     [data] => Array 
      (
       [attributes] => Array 
        (
        ) 

       [shippable] => 1 
       [restrict_qty] => 1 
       [module] => uc_product 
      ) 

     [order_uid] => 13 
    ) 

[6] => stdClass Object 
    (
     [order_product_id] => 1163 
     [order_id] => 142 
     [nid] => 33 
     [title] => White River Forest Non-motorized Recreation Access Permit for Individuals and Release of Liability 
     [manufacturer] => 
     [model] => whiteriver-non-motor-rec-access 
     [qty] => 1 
     [cost] => 75.00000 
     [price] => 75.00000 
     [weight] => 0 
     [data] => Array 
      (
       [attributes] => Array 
        (
        ) 

       [shippable] => 1 
       [restrict_qty] => 1 
       [module] => uc_product 
      ) 

     [order_uid] => 13 
    ) 

[7] => stdClass Object 
    (
     [order_product_id] => 1164 
     [order_id] => 142 
     [nid] => 34 
     [title] => Snoqualmie Forest Non-motorized Recreation Access Permit for Individuals and Release of Liability 
     [manufacturer] => 
     [model] => snoqualmie-non-motor-rec-access 
     [qty] => 1 
     [cost] => 75.00000 
     [price] => 75.00000 
     [weight] => 0 
     [data] => Array 
      (
       [attributes] => Array 
        (
        ) 

       [shippable] => 1 
       [restrict_qty] => 1 
       [module] => uc_product 
      ) 

     [order_uid] => 13 
    ) 
)</pre> 

这是代码在order.tpl.php控制它

<pre>php if (is_array($order->products)) { 
         $context = array(
          'revision' => 'formatted', 
          'type' => 'order_product', 
          'subject' => array(
          'order' => $order, 
         ), 
         ); 
} 
</pre> 

回答

2

我觉得usort()应该工作:

function sortByTitle($a, $b){ 
    return strcmp($a->title, $b->title); 
} 

usort($theArray, 'sortByTitle'); 

您可能希望在一些检查,以扔确定title成员确实存在。

+0

它的工作原理!非常感谢你 – xeraseth