php xpath sort alphabetically by field

2019-08-25 03:44发布

问题:

I'd like to have a more accurate alphabetical sort for xpath. My current system only sorts the first two characters of the field... I'd like it the order the whole field if possible.

foreach(range('A','Z') AS $firstletter) {
     foreach(range('a','z') AS $secondletter) {
              $letters = $firstletter.$secondletter;
              if($item->xpath("/Entries
                                  /Entry[
                                     starts-with(
                                        Field42,
                                        '".$letters."'
                                     )
                                   and 
                                     Field380 = 'Okay'
                                  ]")) {

The Field42 entries are lastnames (ie Brown, Brownstein, Brownwood, Byrnes,..)

回答1:

I don't think you'll be able to sort using XPath (its goal being to select data -- not sort it).

So, why not do it in pure-PHP :

  • First, load all of your nodes to a PHP array
  • And, then, sort that array using one of the functions provided by PHP
    • Such as sort, asort, usort, ...