denis82,
<script>
var models = {};
models[79] = [];
models[79][0]= {'19709' : 'Creta'};
models[79][1]= {'19701' : 'Coupe'};
models[79][2]= {'19725': 'ix35'};
models[79].sort(function() {
// тут можно сортировать как вам нужно, если будет как структура выше
});
alert(models[79]);
</script>
|
denis82,
<script>
var models = {};
models[79] = [];
models[79][0]= {'19709' : 'Creta'};
models[79][1]= {'19701' : 'Coupe'};
models[79][2]= {'19725': 'ix35'};
models[79].sort(function(a,b) {
for(var k in a) a = k;
for(var k in b) b = k;
return a - b});
document.write(JSON.stringify(models[79]));
</script>
|
Да, спасибо, Рони, наверное так и нужно делать. Но как тогда потом на выходе получить такой формат:
models[79][19701] = 'Coupe'; models[79][19709] = 'Creta'; models[79][19725] = 'ix35'; |
Цитата:
|
denis82,
либо вы измените структуру данных и потом сортируите как угодно, либо забудьте о сортировке. |
Цитата:
Цитата:
|
Данные сортируются на стороне клиента в браузере - зависимые списки: марка, модель, поколение, серия, модификация автомобилей. Марки сортирую из БД запросом, но остальные списки сортировать нужно на js. То есть выбрал марку, в зависимости от нее построился список моделей отсортированный по алфавиту с сохранением ключей, чтобы дальше при отправке на сервер передались нужные ключи. Есть скрипт, который управляет списками, подгружая нужный список в зависимости от выбранного, поэтому и желательно подстроить под него синтаксис. Как-то не думал что такие сложности с сортировкой возникнут. В js я совсем слаб, уж простите.
|
Цитата:
Цитата:
|
Имею в виду что если сделать сортировку, как я писал в первом посте, то ключи присвоятся по порядку: 0, 1, 2, 3 и т.д.
Я пробовал сортировать заранее при выводе данных из базы, сортируется корректно, но после этого models[<?php echo $id_brand; ?>][<?php echo $k; ?>] = '<?php echo $v; ?>'; в поле select сортировка как будто игнорируется. Вот почему и стал думать как корректно сортировать массив на js. Не могу понять почему сортировка слетает. foreach ($array2 as $k=>$v) { $title_model = $v; $id_model = $k; ?> models[<?php echo $id_brand; ?>][<?php echo $id_model; ?>] = '<?php echo $title_model; ?>'; <?php } |
denis82,
ещё раз: на выходе у вас разреженный массив -- при сортировке -- все значения сдвигаются к началу массива - ключи в данном случае не ключи, а индексы массива -- нужны ключи => делайте обьект -- но обьект невозможно отсортировать, но можно как угодно извлечь данные. |
| Часовой пояс GMT +3, время: 17:09. |