I have an html form that posts the content of an <input>
field. This field accepts one or more values. If more than one value, then the user just separates with a blank space.
Question: How can I sort the results by the exact order of the user input?
E.g.
<form> <input type="text" id="name" name="name"> <button type="submit"></button> </form>
User inputs the following by this specific order: bravo alpha delta charlie
After posting the form, a php foreach is run and echo’s the result back to the page. The result should be sorted by:
- bravo (results for bravo)
- alpha (results for alpha)
- delta (results for delta)
- charlie (results for charlie)
I understand that I can use several php sort(); options (e.g. alphabetically), but I’m looking to sort exactly by the order that the user has input. How can I accomplish this?
Thanks
Advertisement
Answer
You can use explode
function from PHP like below. Explode will break the string into the same order as user entered no need apply any sort
functions until a need
<?php // user input $_POST['specific_input_name']/$_GET['specific_input_name'] $str = "bravo alpha delta charlie"; // explode with spaces $aStr = explode(" ",$str); // loop individual item foreach($aStr as $value) { echo $value."(results for ${value})<br />"; } // more detailed array structure // print_r (explode(" ",$str)); ?>