Benim ilişkilendirilebilir Array Sipariş PHP Javascript muhafaza edilecektir?

2 Cevap php

PHP Ben ORDER BY yan tümcesi olan bir mysql_query koşuyorum. Sonra anahtar olarak row_id ile ilişkilendirilebilir bir dizi oluşturmak için sonuçları yineleme ediyorum.

Sonra, ben bu dizi üzerinde json_encode arama ve sonuç çıktısı ediyorum.

Bu sayfa AJAX ile yüklü, ve bir JavaScript değişken tanımlanmıştır. Ben JavaScript değişkeni yinelemenize, ben hala mysql_query döndürüldü sipariş olacak?

2 Cevap

Ne cletus doğru olduğunu söylüyor, ama benim deneyim, çoğu tarayıcı düzeni koruyacaktır. Söyleniyor, bir Array kullanmayı düşünmelisiniz. Eğer istemci tarafında aldığımızda sıralamak gerekirse, sadece JavaScript .sort() işlevini kullanın:

rows.sort(function(a, b) {
    return a.row_id - b.row_id;
}

Çalışıyor gibi görünüyor olsa da, bir nesnenin özelliklerin sırası sayılır olamaz. Daha fazla bilgi (benimkinden daha akıllı gözler) için aşağıdaki birçok yorum bakın. Ancak, bu benim kendi sınırlı test davranışını test etmek için kullanılan kod oldu:

var test = {
    one: 'blah',
    two: 'foo',
    another: 'bar'
};

for (prop in test) {
    document.write(prop + "<br />");
}

(Firefox 3.6.3 ve Chrome 5.0.375.9 içinde) Baskılar:

one
two
another

Ayrıca, size bir değil, böyle bir nesnenin (kullanımları {} kaşlı) gibi, geri json_encode() adlı gerek konum ve kodlama JSON türünü alıyorsanız emin olmak isteyebilirsiniz array ([] parantez). Sen json_encode() zorlamak için JSON_FORCE_OBJECT geçmesi gerekebilir.

  • Array yaklaşım tercih olduğunu açıklığa kavuşturmak için düzenlenmiş)
  • (Üzgünüm) tekrar düzenlenmiştir, bu ilgili Chromium'un sorunu izci bir konuya bir bağlantı vardır pcorcoran yorumuna, gözden vardı gibi. Söylemek yeterli, bir nesnenin özellikleri, sipariş not güvenilirdir.

PHP diziler yerleştirme düzeni sürdürmenin kendi özelliğinde biraz özeldir. Javascript başına ilişkilendirilebilir diziler yoktur. Genellikle ilişkisel diziler olarak kullanılan nesneleri vardır. Bunlar herhangi bir tuşa sırasını garanti yoktur.

Bir dizi olarak onları Neden çıkışı değildir? Yani belirli bir düzen olacaktır. Eğer anahtar arama çeşit istiyorsan neden sırası önemli mi?