У меня проблемы с массивом, который я заказываю с использованием usort.В настоящее время он смотрит на первое число каждого значения и упорядочивает на основе того, что хорошо, но это означает, что вместо - 1 улица 2 улица 3 улица, я получаю - 1 улица 10 улица 11улица.
Я пытался добавить substr, но это не имело никакого значения - что мне не хватает?
function cmp($a, $b)
{
return strcmp( substr( $a['0'], 0, 2 ), substr( $b['0'], 0, 2 ) );
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
...
usort($a, "cmp");
EDIT
Итак, массив IВозвращаюсь на данный момент выглядит так:
[0] => Array
(
[0] => 1 The Street, The City, The County
[1] => FriA
)
[1] => Array
(
[0] => 10 The Street, The City, The County
[1] => FriB
)
[2] => Array
(
[0] => 11 The Street, The City, The County
[1] => FriA
)
Первое значение - это адрес, второе - расписание.2 Улица в настоящее время отображается после 19, а не 1.
<code>function cmp( $a, $b ) {
return strcmp( substr( $a[ '0' ], 0, 2 ), substr( $b[ '0' ], 0, 2 ) );
if ( $a == $b ) {
return 0;
}
return ( $a < $b ) ? -1 : 1;
}
foreach ( $json[ 'candidates' ] as $value ) {
$address = $json[ 'candidates' ][ $index ][ 'attributes' ][ 'ADDRESS_1' ];
$code = $json[ 'candidates' ][ $index ][ 'attributes' ][ 'CODE' ];
$a[] = array( $address, $code );
usort($a, "cmp");
$index++;
}
echo '<pre>';print_r( $a );echo '
';