litebearer
08-03-2006, 02:25 AM
The scenario:
1. flatfile database
consists of records delimited by carriage returns.
records have fields delimited by commas
example of file structure and content:
1,Nicholas,,Stoia,6992 Biscayne,White Lake,MI,48383,1,13,1946,,,,,,,
2,Myles,Edward,Dean,,,WV,,0,0,0,,,,,,,
3,Sharon,Marie,Stoia,6992 Biscayne,White Lake,MI,48383,7,16,1955,,,,,,,
4,Jonathon,Hunter,Stoia,6992 Biscayne,White Lake,MI,48383,12,13,1988,,,,,,,
5,Rebecca,,Dean,,,WV,,0,0,0,,,,,,,
6,Gilbert,Rial,Stebbins,22600 Bluewater Drive,Macomb Twp,MI,48044,0,0,0,,,,,,,
7,Beverly,,Stebbins,22600 Bluewater Drive,Macomb Twp,MI,48044,0,0,0,,,,,,,
8,Sean,Michael,Dean,167 Weston Road,Wellesley,MA,02482,0,0,0,,,,,,,
2. multidimensional array created as follows:
// read file into array
$file = file("faf.txt");
$count = count($file);
// convert first array to multidimensional array
$i = 0;
for($i=0;$i<$count;$i++) {
$file_cards[$i] = explode(",", $file[$i]);
}
3. sort by last name (
function compare($x, $y){
if ( $x[3] == $y[3] )
return 0;
else if ( $x[3] < $y[3] )
return -1;
else
return 1;
}
usort($file_cards, 'compare');
The Question:
The above works fine; however,
in addition to sorting by last name $file_cards[x][3]
I would like to further sort by first name $file_cards[x][1]
and then by middle name $file_cards[x][2] .
How?
Thanks,
Lite...
1. flatfile database
consists of records delimited by carriage returns.
records have fields delimited by commas
example of file structure and content:
1,Nicholas,,Stoia,6992 Biscayne,White Lake,MI,48383,1,13,1946,,,,,,,
2,Myles,Edward,Dean,,,WV,,0,0,0,,,,,,,
3,Sharon,Marie,Stoia,6992 Biscayne,White Lake,MI,48383,7,16,1955,,,,,,,
4,Jonathon,Hunter,Stoia,6992 Biscayne,White Lake,MI,48383,12,13,1988,,,,,,,
5,Rebecca,,Dean,,,WV,,0,0,0,,,,,,,
6,Gilbert,Rial,Stebbins,22600 Bluewater Drive,Macomb Twp,MI,48044,0,0,0,,,,,,,
7,Beverly,,Stebbins,22600 Bluewater Drive,Macomb Twp,MI,48044,0,0,0,,,,,,,
8,Sean,Michael,Dean,167 Weston Road,Wellesley,MA,02482,0,0,0,,,,,,,
2. multidimensional array created as follows:
// read file into array
$file = file("faf.txt");
$count = count($file);
// convert first array to multidimensional array
$i = 0;
for($i=0;$i<$count;$i++) {
$file_cards[$i] = explode(",", $file[$i]);
}
3. sort by last name (
function compare($x, $y){
if ( $x[3] == $y[3] )
return 0;
else if ( $x[3] < $y[3] )
return -1;
else
return 1;
}
usort($file_cards, 'compare');
The Question:
The above works fine; however,
in addition to sorting by last name $file_cards[x][3]
I would like to further sort by first name $file_cards[x][1]
and then by middle name $file_cards[x][2] .
How?
Thanks,
Lite...