Solved

Sorting a multi dimensional array.... case insensitive

Posted on 2008-10-09
2
490 Views
Last Modified: 2012-06-27
Hi all,
I have managed to cobble together a bit of code (SNIPPET 1) to sort a multi dimensional array from php.net
However the sort is case sensitive, so upper case are sorted before lower case.

I also found SNIPPET 2, which is supposed to make the sort case insensitive, but cant work out how to get it working with SNIPPET 1... any ideas?
SNIPPET 1

<?
 

$data[] = array('volume' => 'Adam', 'edition' => 1,'target' => 'pie');

$data[] = array('volume' => 'Eve', 'edition' => 2, 'target' => 'applies');

$data[] = array('volume' => 'Zoozoo', 'edition' => 3, 'target' => 'hope');

$data[] = array('volume' => 'Mika', 'edition' => 4,'target' => 'love');

$data[] = array('volume' => 'Moosha', 'edition' => 5,'target' => 'mope');

$data[] = array('volume' => 'Blk', 'edition' => 6,'target' => 'mash');
 

// Obtain a list of columns

foreach ($data as $key => $row) {

    $volume[$key]  = $row['volume'];

    $edition[$key] = $row['edition'];

}
 

// Sort the data with volume descending, edition ascending

// Add $data as the last parameter, to sort by the common key

array_multisort($volume, SORT_ASC, $edition, SORT_ASC, $data);
 

print_r($data);

?> 
 
 

SNIPPET 2
 

<?php

$array = array('Alpha', 'atomic', 'Beta', 'bank');

$array_lowercase = array_map('strtolower', $array);
 

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);
 

print_r($array);

?>

Open in new window

0
Comment
Question by:fox_statton
2 Comments
 
LVL 48

Accepted Solution

by:
hernst42 earned 500 total points
ID: 22677065
Try
// Obtain a list of columns

foreach ($data as $key => $row) {

    $volume[$key]  = strtolower($row['volume']);

    $edition[$key] = $row['edition'];

}

Open in new window

0
 
LVL 7

Expert Comment

by:brucepieterse
ID: 22677245

// Obtain a list of columns

foreach ($data as $key => $row) {

    $volume[$key]  = ucwords($row['volume']);

    $edition[$key] = $row['edition'];

}

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
I imagine that there are some, like me, who require a way of getting currency exchange rates for implementation in web project from time to time, so I thought I would share a solution that I have developed for this purpose. It turns out that Yaho…
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to count occurrences of each item in an array.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now