İkilemim var. Amazon'un MWS'sini kullandığım için, dizinin sırasını tam olarak Amazon'un yapacağı gibi almam gerekir. Aksi halde, yaptığım karma miktar ve Amazon'daki karmaları eşleşmeyecek ve Amazon benim beslememi kabul etmeyecek.PHP usort fonksiyonu artan öğeleri olan diziyi sıralamak için
PHP'nin usort
'u bildiğim halde, hiç kullanmadım, bu yüzden ihtiyacım olanı yapan bir işlevi nasıl oluşturacağımı tam olarak bilmiyorum.
Array (
[0] => AWSAccessKeyId=XXXXXXXX
[1] => Action=ListInventorySupply
[2] => MarketplaceId=XXXXXXX
[3] => ResponseGroup=Basic
[4] => SellerId=XXXXXX
[5] => SellerSkus.member.10=SKU10
[6] => SellerSkus.member.11=SKU11
[7] => SellerSkus.member.1=SKU1
[8] => SellerSkus.member.2=SKU2
[9] => SellerSkus.member.3=SKU3
[10] => SellerSkus.member.4=SKU4
[11] => SellerSkus.member.5=SKU5
[12] => SellerSkus.member.6=SKU6
[13] => SellerSkus.member.7=SKU7
[14] => SellerSkus.member.8=SKU8
[15] => SellerSkus.member.9=SKU9
[16] => SignatureMethod=HmacSHA256
[17] => SignatureVersion=2
[18] => Timestamp=2016-04-06T22%3A26%3A41Z
[19] => Version=2010-10-01
)
sorun Amazon'un sıralama sadece biraz farklı olmasıdır:
İşte dizisidir
Array (
[0] => AWSAccessKeyId=XXXXXXXX
[1] => Action=ListInventorySupply
[2] => MarketplaceId=XXXXXXX
[3] => ResponseGroup=Basic
[4] => SellerId=XXXXXX
[5] => SellerSkus.member.1=SKU1
[6] => SellerSkus.member.10=SKU10
[7] => SellerSkus.member.11=SKU11
[8] => SellerSkus.member.2=SKU2
[9] => SellerSkus.member.3=SKU3
[10] => SellerSkus.member.4=SKU4
[11] => SellerSkus.member.5=SKU5
[12] => SellerSkus.member.6=SKU6
[13] => SellerSkus.member.7=SKU7
[14] => SellerSkus.member.8=SKU8
[15] => SellerSkus.member.9=SKU9
[16] => SignatureMethod=HmacSHA256
[17] => SignatureVersion=2
[18] => Timestamp=2016-04-06T22%3A26%3A41Z
[19] => Version=2010-10-01
)
İlk üç SellerSkus.member.{#}
elementler için tuşlar farklı olduğunu göreceksiniz. Kalan sıralamada aynı kalmaya ihtiyacım var, ancak Amazon'un sıralamasında olduğu gibi 10 veya daha fazla SKU'sunun olması gerektiğinde.
PHP doc for usort'u okudum, ancak hala 10 öğenin üzerinde çalışan hiçbir şey almıyorum. Doğru şekilde sıralamak için SellerSkus.member.{#}
numarasını takip etmem gerekiyor gibi görünüyor, ama ben usort
ile nasıl yapılacağı hakkında en ateşli bir fikrim yok. Doğru yönde herhangi bir rehberlik harika olurdu! Teşekkürler.
"natsort" a bakın, dizenin sayısal bölümünü bulur ve sayısal olarak sıralar. – Barmar
@Barmar Teşekkürler. "natsort", bu "SellerSkus.member.10" ve "SellerSkus.member.11" öğelerini alır ve bunları "SellerSkus.member.9" öğesinin arkasına yerleştirir. Garip olan şey, "natsort" sayfasında, değerleri istediğim gibi sıralayan bir "Standart sıralama" bölümünü gösteriyor, ancak bu, 'sort' ya da 'asort' aslında diziyi sıralamak değil. – Michael
Üzgünüm, yanlış okuduğumu, onları sayısal sırada istediğini sanıyordum. – Barmar