私はジレンマを持っています。私はAmazonのMWSを使用しているので、私はコンテンツをハッシュする前にAmazonのものとまったく同じ順序で配列を取得する必要があります。そうしなければ、ハッシュはAmazonとなり、Amazonはフィードを受け付けません。要素をインクリメントしている配列をソートするPHPのusort関数
私はPHPのusort
を知っていましたが、私はこれを使ったことがないので、私が必要とする機能をどのように作成するのかよく分かりません。
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
)
問題はAmazonのソートがわずかに異なることである:
は、ここで、アレイの
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
)
あなたが最初の3つのSellerSkus.member.{#}
の要素のキーが異なっていることがわかります。残りの並べ替えを同じに保つことができる必要があります。ただし、10以上のSKUがある場合は、Amazonの並べ替えのように並べ替える必要があります。
私はPHP doc for usortを読んだことがありますが、10項目以上で動作するものはまだ得られていません。正しく並べ替えるためには、SellerSkus.member.{#}
の番号を把握しておく必要があるようですが、私はusort
でこれを行う方法を知っているわけではありません。正しい方向へのガイダンスは素晴らしいでしょう!ありがとう。
'natsort'を見て、文字列の数値部分を見つけて数値的にソートします。 – Barmar
@Barmarありがとう。 'natsort'はそれらの要素を' SellerSkus.member.10'と 'SellerSkus.member.11'とし、それらを' SellerSkus.member.9'要素の後ろに置きます。奇妙なのは、 'natsort'ページでは、「ソート」や「ソート」が実際に配列をソートするのではなく、必要に応じて値をソートする「標準ソート」セクションがあることです。 – Michael
申し訳ありませんが、私は間違っている、私はあなたが数字順にそれらを望んだと思った。 – Barmar