<?php
$array = array(
array('apn' => 345345345, 'sqft' => 1200, 'address' => '323 Pacific Ave.'),
array('apn' => 345345342, 'sqft' => 1421, 'address' => '324 Pacific Ave.'),
array('apn' => 345345346, 'sqft' => 1012, 'address' => '325 Pacific Ave.'),
array('apn' => 345345347, 'sqft' => 1093, 'address' => '328 Pacific Ave.'),
array('apn' => 345345353, 'sqft' => 1121, 'address' => '12 Lincoln Ave.'),
array('apn' => 345345351, 'sqft' => 1643, 'address' => '13 Lincoln Ave.'),
array('apn' => 345345352, 'sqft' => 1222, 'address' => '14 Lincoln Ave.')
);
usort($array, function($x, $y)
{
$x = preg_split('/^(\d+)\s+(.*)/', $x['address'], -1 , 3);
$y = preg_split('/^(\d+)\s+(.*)/', $y['address'], -1 , 3);
$x[2] = $x[0] % 2;
$y[2] = $y[0] % 2;
if($x[1]==$y[1])
{
if($x[2]==$y[2])
return $x[0]<$y[0]?-1:$x[0]!=$y[0];
return $x[2]>$y[2]?:1;
}
return $x[1]<$y[1]?:1;
});
var_dump($array);
preferences:
40.67 ms | 402 KiB | 5 Q