jQuery / PHP - sort html list by PHP array values?

I have a list like this:

<li> <input value="1" name="bla[]" /> </li>
<li> <input value="2" name="bla[]" /> </li>
<li> <input value="3" name="bla[]" /> </li>

(always the same order)

and a array like this

array('3', '1', '2');

but the order of the values in the array can change anytime. Can the list above be sorted with jQuery based on the array order?


You can do it client-side like this, if PHP isn't an option (please do it in PHP if possible, no need for JavaScript in that case):

var arr = ['3', '1', '2'];
for(var i=0; i<arr.length; i++) {
    $("ul li input[value='" + arr[i] + "']").parent().appendTo("ul");

You can see a demo here

Though if you don't actually need to sort, can't you just set those values on the inputs in a loop? This assumes the real code isn't a lot more complex than the example, like this:

var arr = ['3', '1', '2'];
$("ul li input").val(function(i) {
    return arr[i];

You can try that version here

You'll want to use javascript for this, but close enough to jQuery I suppose!

You can implement the sort() method. See here: http://www.w3schools.com/jsref/jsref_sort.asp

And if you need to sort with PHP see here: http://php.net/manual/en/function.sort.php

Need Your Help

Using javascript in an html.erb file?

javascript html ruby-on-rails linker erb

I'm a Rails newbie please forgive me for the insanely basic question that follows.

Replace custom UIViews arranged by Interface Builder with UILabels programmatically

ios objective-c iphone uiview interface-builder

Using Interface Builder, I have built a really long ScrollView filled with Custom UIViews, regular UIViews, StackViews, UILabels, UIButtons, etc.