elegos Inviato 14 Luglio 2009 Segnala Condividi Inviato 14 Luglio 2009 Salve a tutti! Sto realizzando una cosuccia, e questa cosuccia mi sputa fuori un'array del genere: array( 0 => array("name" => "test", "age" => 22), 1 => array("name" => "pippo", "age" => 44), 2 => array("name" => "ernesto", "age" => 33), 3 => array("name" => "catapecchia", "age" => 11), ... ); La mia domanda è: come posso fare re-indexare l'array principale prendendo come riferimento la chiave interna "name"? Grazie World of Warcraft: Oracoli @ Runetotem EU Gilda italiana! Link al commento Condividi su altri siti Altre opzioni di condivisione...
elegos Inviato 15 Luglio 2009 Autore Segnala Condividi Inviato 15 Luglio 2009 OK, la funzione che sto creando è la seguente: function getMembersList($sort = GUILD_SORT_NULL) { $return = array(); foreach($this->xmlsheet->guildInfo->guild->members->character as $char) { switch($this->region) { case EU: $url = "http://eu.wowarmory.com/character-sheet.xml?"; break; case US: $url = "http://www.wowarmory.com/character-sheet.xml?"; break; } $return[] = array( "name" => utf8_decode($char["name"]), "gender" => (int)$char["genderId"], "raceid" => (int)$char["raceId"], "classid" => (int)$char["classId"], "level" => (int)$char["level"], "rankid" => (int)$char["rank"], "url" => $url.$char["url"], "achPoints" => (int)$char["achPoints"], ); } if($sort != GUILD_SORT_NULL) { switch($sort) { case GUILD_SORT_NAME: $rule = "name"; break; case GUILD_SORT_GENDER: $rule = "gender"; break; case GUILD_SORT_RACE: $rule = "raceid"; break; case GUILD_SORT_CLASS: $rule = "classid"; break; case GUILD_SORT_LEVEL: $rule = "level"; break; case GUILD_SORT_RANK: $rule = "rankid"; break; case GUILD_SORT_ACHP: $rule = "achPoints"; break; } $sorting = array(); foreach($return as $data) { $sorting[$data[$rule]][] = $data; } $return = array(); ksort($sorting); foreach($sorting as $s => $group) $sorted[$s] = $group; foreach($sorted as $id => $rule_array) { foreach($rule_array as $array) $return[] = $array; } } return $return; } Nota che ho messo $sorting[$data[$rule]][] e non semplicemente $sorting[$data[$rule]] perché è possibile che il termine della chiave venga ripetuto più di una volta. Questa "cosa" che ho implementato funziona, ma per caso esiste un metodo più elegante? Grazie. World of Warcraft: Oracoli @ Runetotem EU Gilda italiana! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.