2017-01-26 5 views
-1

РЕКОМЕНДУЕМОГО DUPLICATE ОТВЕТ НЕ РЕШИТЬСортировка многомерного массива JS

У меня есть 4 скрытых входов, где приращение стоимости, основываясь на действия пользователя. Var Id получает идентификатор каждого входного значения и var val его значение.

<input class="howmanyproducts" id="<?php echo $value; ?>" name="<?php echo $value; ?>" type="hidden" value="0"> 

Я толкаю каждый набор значений в массив, который будет выводить:

8(id), 1(val) 
9, 2 
3, 5 
7, 8 

Мне нужно сортировать эти значения, основанные на Валу. Таким образом, вышеуказанное должно возвращаться:

7, 8 
3, 5 
9, 2 
8, 1 

Ниже приведено то, что у меня есть до сих пор, надеюсь, что вопрос имеет смысл!

$("#proddiv .howmanyproducts").each(function() { 
    var id = this.id; 
    var val = $(this).val(); 
    ids.push([id, +val]); 
}); 

    ids.sort(function(b, a) { return a[1] - b[1]; }); 
    $("#productorder").val(ids); 
    $("#productscore").submit(); 

Ниже, как я получить данные формы, которая должна быть в отсортированный

$prodorder = $_POST['productorder']; 
$array2 = array_unique(explode(',', $prodorder)); 

Мой текущий код не меняется порядок на всех!

+0

В вашей публикации нет никаких сомнений. – zerkms

+0

Ваш текущий код выглядит хорошо, в чем проблема? – Gabriel

+0

извините, обновлено. –

ответ

0

товар, после чего форма будет отправлена. Я думаю, что это ваша проблема, я тестировал сортировать функцию, и это правда:

var arr = []; 
    arr.push([1, 3]); 
    arr.push([2, 2]); 
    arr.push([4, 8]); 
    arr.push([0, 9]); 
    arr.sort(function (b, a) { return a[1] - b[1]; }); 
    console.log(arr); 
+0

Мне нужно использовать каждую функцию, так как иды динамические –

+0

вам не нужно сортировать. – thedarklord47

+0

Итак, вы должны изменить свой код. Подача должна идти после каждого окончания. –

0

Я считаю, что вы хотите, чтобы отсортировать массив объектов с id и val свойств путем порядка val значений убывания, является то, что правильно ? Если это так, то sort сделает все, что вам нужно:

let A = [{id: 8, val: 1}, {id: 9, val: 2}, {id: 3, val: 5}, {id: 7, val: 8}] 
A.sort((a, b) => a.val < b.val) 
[{id: 7, val: 8}, {id: 3, val: 5}, {id: 9, val: 2}, {id: 8, val: 1}] 
Смежные вопросы