使用int和text值将对象排序为值

Par*_*ser 1 php sorting int object

我有一个对象,并有一个问题,这个对象在这里$ product有这个键(product_title,product_price,product_stock)等等,我需要在product_title之后排序,如果我的对象有这个产品我不能正确排序.

test product 1
test product 11
test product 111
test product 2
test product 20
test product 3
test product 33
test product 333
Run Code Online (Sandbox Code Playgroud)

正确的排序方式如下:

test product 1
test product 2
test product 3
test product 11
test product 33
test product 20
test product 111
test product 333
Run Code Online (Sandbox Code Playgroud)

我曾尝试sortrsort没有运气.

如果它可以帮助,我的对象看起来像这样:

array(8) {
  [0]=>
  object(stdClass)#12 (49) {
    ["product_id"]=>
    string(3) "335"
    ["product_guid"]=>
    string(36) "F0161D03-33EF-6F40-C816-AEDB33640E36"
    ["account_id"]=>
    string(2) "28"
    ["category_id"]=>
    string(3) "189"
    ["brand_guid"]=>
    NULL
    ["product_title"]=>
    string(10) "Fadestativ"
    ["push_date"]=>
    string(19) "2011-01-18 13:02:11"
    ["product_price"]=>
    string(3) "560"
    ["product_price_before"]=>
    string(1) "0"
    ["on_stock"]=>
    string(1) "0"
    ["product_weight"]=>
    string(1) "0"
    ["product_int_number"]=>
    string(0) ""
    ["product_ext_number"]=>
    string(0) ""
    ["product_small_info"]=>
    string(0) ""
    ["product_big_info"]=>
    string(31) "3 benet fad stativ højde 19 cm"
    ["active"]=>
    string(1) "1"
    ["meta_title"]=>
    string(0) ""
    ["meta_keyword"]=>
    string(0) ""
    ["meta_description"]=>
    string(0) ""
    ["product_new"]=>
    string(1) "0"
    ["indicative_price"]=>
    string(1) "0"
    ["cost_price"]=>
    string(1) "0"
    ["id"]=>
    string(2) "28"
    ["domain"]=>
    string(26) "eventhuset.schemecloud.com"
    ["password"]=>
    string(32) "098f6bcd4621d373cade4e832627b4f6"
    ["resellerid"]=>
    string(1) "2"
    ["defualt_lang"]=>
    string(2) "dk"
    ["quota"]=>
    string(3) "100"
    ["account_type"]=>
    string(3) "cms"
    ["busniess_name"]=>
    string(0) ""
    ["busniess_street"]=>
    string(0) ""
    ["busniess_city"]=>
    string(0) ""
    ["busniess_zipcode"]=>
    string(0) ""
    ["busniess_contry"]=>
    string(0) ""
    ["busniess_phone"]=>
    string(0) ""
    ["busniess_contact_person"]=>
    string(0) ""
    ["busniess_contact_phone"]=>
    string(0) ""
    ["busniess_email"]=>
    string(0) ""
    ["busniess_cvr"]=>
    string(0) ""
    ["invoice_name"]=>
    string(0) ""
    ["invoice_street"]=>
    string(0) ""
    ["invoice_city"]=>
    string(0) ""
    ["invoice_zipcode"]=>
    string(0) ""
    ["invoice_contry"]=>
    string(0) ""
    ["invoice_contact_person"]=>
    string(0) ""
    ["invoice_cvr"]=>
    string(0) ""
    ["payment_expires"]=>
    string(19) "0000-00-00 00:00:00"
    ["next_order_number"]=>
    string(5) "10001"
    ["order_prefix"]=>
    string(0) ""
  }
  [1]=>
  object(stdClass)#14 (49) {
    ["product_id"]=>
    string(3) "306"
    ["product_guid"]=>
    string(36) "8119C253-84C7-73AC-4125-DF4B1728A203"
    ["account_id"]=>
    string(2) "28"
    ["category_id"]=>
    string(3) "189"
    ["brand_guid"]=>
    NULL
    ["product_title"]=>
    string(15) "Kartoffel skål"
    ["push_date"]=>
    string(19) "2011-01-17 13:40:08"
    ["product_price"]=>
    string(3) "680"
    ["product_price_before"]=>
    string(1) "0"
    ["on_stock"]=>
    string(1) "0"
    ["product_weight"]=>
    string(1) "0"
    ["product_int_number"]=>
    string(0) ""
    ["product_ext_number"]=>
    string(0) ""
    ["product_small_info"]=>
    string(0) ""
    ["product_big_info"]=>
    string(31) "Kartoffel skål i rustfri stål"
    ["active"]=>
    string(1) "1"
    ["meta_title"]=>
    string(0) ""
    ["meta_keyword"]=>
    string(0) ""
    ["meta_description"]=>
    string(0) ""
    ["product_new"]=>
    string(1) "0"
    ["indicative_price"]=>
    string(1) "0"
    ["cost_price"]=>
    string(1) "0"
    ["id"]=>
    string(2) "28"
    ["domain"]=>
    string(26) "eventhuset.schemecloud.com"
    ["password"]=>
    string(32) "098f6bcd4621d373cade4e832627b4f6"
    ["resellerid"]=>
    string(1) "2"
    ["defualt_lang"]=>
    string(2) "dk"
    ["quota"]=>
    string(3) "100"
    ["account_type"]=>
    string(3) "cms"
    ["busniess_name"]=>
    string(0) ""
    ["busniess_street"]=>
    string(0) ""
    ["busniess_city"]=>
    string(0) ""
    ["busniess_zipcode"]=>
    string(0) ""
    ["busniess_contry"]=>
    string(0) ""
    ["busniess_phone"]=>
    string(0) ""
    ["busniess_contact_person"]=>
    string(0) ""
    ["busniess_contact_phone"]=>
    string(0) ""
    ["busniess_email"]=>
    string(0) ""
    ["busniess_cvr"]=>
    string(0) ""
    ["invoice_name"]=>
    string(0) ""
    ["invoice_street"]=>
    string(0) ""
    ["invoice_city"]=>
    string(0) ""
    ["invoice_zipcode"]=>
    string(0) ""
    ["invoice_contry"]=>
    string(0) ""
    ["invoice_contact_person"]=>
    string(0) ""
    ["invoice_cvr"]=>
    string(0) ""
    ["payment_expires"]=>
    string(19) "0000-00-00 00:00:00"
    ["next_order_number"]=>
    string(5) "10001"
    ["order_prefix"]=>
    string(0) ""
  }
Run Code Online (Sandbox Code Playgroud)

我需要排序

array(8) {
  [0]=>
  object(stdClass)#12 (49) {
    ["product_title"]=>
    string(10) "Fadestativ"
}
Run Code Online (Sandbox Code Playgroud)

irc*_*ell 5

好吧,假设它们是对象(来自你的描述和评论),你可以使用usort.

PHP 5.3+:

usort(
    $array, 
    function($a, $b) {
        return strnatcmp($a->title, $b->title);
    }
);
Run Code Online (Sandbox Code Playgroud)

PHP <= 5.2:

usort(
    $array;
    create_function('$a, $b', 'return strnatcmp($a->title, $b->title);`)
);
Run Code Online (Sandbox Code Playgroud)

更改->title为您要排序的任何属性.如果你想要不区分大小写,请使用strnatcasecmp而不是strnatcmp()......