<?php
$indice_enti = '[{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Torino","data_ingresso_siope":"2007-01-01T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"001","descrizione_regione":"PIEMONTE","numero_abitanti":2669,"descrizione_ente":"COMUNE DI AGLIE\'","descrizione_ente_not_stemmed":"COMUNE DI AGLIE\'","codice_regione":"01","codice_fiscale":"83501790014 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"011142764","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649331752960},{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Novara","data_ingresso_siope":"2007-01-01T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"003","descrizione_regione":"PIEMONTE","numero_abitanti":1556,"descrizione_ente":"COMUNE DI BAGRATE CONTURBIA","descrizione_ente_not_stemmed":"COMUNE DI AGRATE CONTURBIA","codice_regione":"01","codice_fiscale":"00471090035 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"011120674","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649334898688},{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Cuneo","data_ingresso_siope":"2007-01-01T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"004","descrizione_regione":"PIEMONTE","numero_abitanti":173,"descrizione_ente":"COMUNE DI ZACCEGLIO","descrizione_ente_not_stemmed":"COMUNE DI ZACCEGLIO","codice_regione":"01","codice_fiscale":"00481380046 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"011120809","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649334898689},{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Asti","data_ingresso_siope":"2007-01-04T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"005","descrizione_regione":"PIEMONTE","numero_abitanti":1686,"descrizione_ente":"COMUNE DI AGLIANO","descrizione_ente_not_stemmed":"COMUNE DI AGLIANO","codice_regione":"01","codice_fiscale":"82000250058 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"000720006","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649334898690},{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Alessandria","data_ingresso_siope":"2006-01-02T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"006","descrizione_regione":"PIEMONTE","numero_abitanti":20238,"descrizione_ente":"COMUNE DI ACQUI TERME","descrizione_ente_not_stemmed":"COMUNE DI ACQUI TERME","codice_regione":"01","codice_fiscale":"00430560060 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"010697333","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649335947264}]';
$data_indice_enti = json_decode($indice_enti, true);
function sort_alphabetically($a, $b)
{
global $data_indice_enti;
if ($a->$data_indice_enti['descrizione_ente'] > $b->$data_indice_enti['descrizione_ente']) {
return -1;
} else if ($a->$data_indice_enti['descrizione_ente'] < $b->$data_indice_enti['descrizione_ente']) {
return 1;
} else {
return 0;
}
}
usort($data_indice_enti, 'sort_alphabetically');
foreach ($data_indice_enti as $ente) {
$codice_comparto = $ente['codice_comparto'];
$codice_ente = $ente['codice_ente'];
$descrizione_ente = $ente['descrizione_ente'];
echo '<option value="'. $codice_comparto .' - '. $codice_ente .'">'. $descrizione_ente. '</option>';
}
?>
Я тут что то не так делаю … понимаюПопытка получить свойство необъекта» за $data_indice_enti['descrizione_ente']
а также «Неопределенный индекс: descrizione_ente«.. Я не знаю, как получить доступ к этим значениям в usort
функция.
ideone ссылка на сайт.
Это должно работать для вас:
(И если вы хотите перейти с A-Z, просто измените -1
а также 1
)
<?php$indice_enti = '[{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Torino","data_ingresso_siope":"2007-01-01T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"001","descrizione_regione":"PIEMONTE","numero_abitanti":2669,"descrizione_ente":"COMUNE DI AGLIE\'","descrizione_ente_not_stemmed":"COMUNE DI AGLIE\'","codice_regione":"01","codice_fiscale":"83501790014 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"011142764","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649331752960},{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Novara","data_ingresso_siope":"2007-01-01T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"003","descrizione_regione":"PIEMONTE","numero_abitanti":1556,"descrizione_ente":"COMUNE DI BAGRATE CONTURBIA","descrizione_ente_not_stemmed":"COMUNE DI AGRATE CONTURBIA","codice_regione":"01","codice_fiscale":"00471090035 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"011120674","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649334898688},{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Cuneo","data_ingresso_siope":"2007-01-01T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"004","descrizione_regione":"PIEMONTE","numero_abitanti":173,"descrizione_ente":"COMUNE DI ZACCEGLIO","descrizione_ente_not_stemmed":"COMUNE DI ZACCEGLIO","codice_regione":"01","codice_fiscale":"00481380046 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"011120809","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649334898689},{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Asti","data_ingresso_siope":"2007-01-04T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"005","descrizione_regione":"PIEMONTE","numero_abitanti":1686,"descrizione_ente":"COMUNE DI AGLIANO","descrizione_ente_not_stemmed":"COMUNE DI AGLIANO","codice_regione":"01","codice_fiscale":"82000250058 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"000720006","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649334898690},{"ripartizione_geografica":"ITALIA NORD-OCCIDENTALE","descrizione_provincia":"Alessandria","data_ingresso_siope":"2006-01-02T00:00:00Z","codice_sottocomparto":"COMUNE","codice_provincia":"006","descrizione_regione":"PIEMONTE","numero_abitanti":20238,"descrizione_ente":"COMUNE DI ACQUI TERME","descrizione_ente_not_stemmed":"COMUNE DI ACQUI TERME","codice_regione":"01","codice_fiscale":"00430560060 ","codice_comparto":"PRO","codice_comune":"001","codice_ente":"010697333","data_uscita_siope":"9999-12-31T23:59:00Z","_version_":1488188649335947264}]';
$data_indice_enti = json_decode($indice_enti, true);function sort_alphabetically($a, $b) {
if ($a['descrizione_ente'] > $b['descrizione_ente']) {
//^Removed object access to a array
return -1;
} else if ($a['descrizione_ente'] < $b['descrizione_ente']) {
return 1;
} else {
return 0;
}
}
usort($data_indice_enti, 'sort_alphabetically');
foreach ($data_indice_enti as $ente) {
$codice_comparto = $ente['codice_comparto'];
$codice_ente = $ente['codice_ente'];
$descrizione_ente = $ente['descrizione_ente'];
echo '<option value="'. $codice_comparto .' - '. $codice_ente .'">'. $descrizione_ente. '</option>';
}
?>
Выход:
COMUNE DI ZACCEGLIO
COMUNE DI BAGRATE CONTURBIA
COMUNE DI AGLIE'
COMUNE DI AGLIANO
COMUNE DI ACQUI TERME
И для получения дополнительной информации о usort()
увидеть: http://php.net/manual/en/function.usort.php
Других решений пока нет …