Sort the values of an Object array alphabetically in php and arrange them into sections of alphabets according to the first letter of their name.
/* Code to sort the data elements in alphabetic order .
The following snippet will sort the array alphabetically in ascending order, starting from 'a' to 'z' .  */
<?php
function compareByName($a, $b) {
  return strcmp($a->name, $b->name);
}
usort($cityPages->data, 'compareByName');   // $cityPages->data are the array which we want to sort.
?>
 
/* Code to arrange the sorted data elements into their respective sections with the first letter of their names.
*/
<?php 
$previousalphabet = null;  // initialize the alphabets for to compare with next alphabets for the start.
$initial_counter  = 1;
foreach($cityPages->data as $value) {
  $firstalphabet = substr($value->name, 0, 1);      // extract the first alphabet of the word.
  if($previousalphabet !== $firstalphabet) {        // compare the first alphabet with  the previous alphabet.
    if($initial_counter!=1){ echo '</ul></li>'; } ?>  // if its not the first case then print the result in list tag.
    <li class="<?php echo strtolower($firstalphabet); ?> item masonry-brick">
    <h3><?php echo $firstalphabet; ?></h3>         // print the first alphabet whose section is going to start like A,B,C,D etc.
    <?php echo '<ul>';          //start the <ul> to print the results under above alphabet section.
  }
  $previousalphabet = $firstalphabet;       // replace the previous alphabet with the current one.
 
  echo '<li>'echo $value->name;        // print the value inside <li> under the individual alphabet.
  $initial_counter++;    // increase the counter 
}
?>
 
The output of the above code will be like : 
Output format : 
A                  B                 C                   D
atlanta        Bosten        China            Denmark
anapolis      Berlin          Charlotte      Detroit
arkon
                       
                    
0 Comment(s)