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, время: 02:10. |