Byta plats på arrayinstanser

Events happening in the community are now at Drupal community events on www.drupal.org.
Marcus 78's picture

Hej Allihopa

Detta kanske mer är ett problem som borde tas i ett php forum (har gjort det utan svar) men ni har varit duktigt på frågor tidigare och så är det en del av en drupal modul också.

Kortfattat är mitt problem följande
Har en array som ser ut såhär.

$sokvagar ([kommun], [stad], [skola], [utbildning])

Arrayen i sig strular så jag får en massa dubletter. (Kan inte arbeta med problemet i tidigare steg vilket förstås hade varit det bästa)
Dubletterna skulle jag kunna får bort med hjälp av array unique

Läste på
http://se2.php.net/manual/en/function.array-unique.php
The first element will be used.

Problemet är att det finns flera skolor i samma kommun.

Alltså skulle jag behöva peka om array unique så att den bara tittar på den 3dje eller fjärde instansen av arrayen eller byta ordningen till
$sokvagar ([skola], [kommun], [stad], [utbildning])

Någon som har en idé hur jag ska lösa detta?

//Marcus

Comments

Kanske kan detta hjälpa

pontus_nilsson's picture

Kanske kan detta hjälpa dig.

Jag använder denna för att snurra runt ordningen på $links.

/**
* Helper function to reorder links array
*/
function reorder_array($links, $first_keys = array()) {
    $first_links = array();
    foreach ($first_keys as $key) {
        if (isset($links[$key])) {
            $first_links[$key] = $links[$key];
            unset($links[$key]);
        }
    }

    $links = array_merge($first_links, $links);
    return $links;
}

Och så här kallar jag på funktionen.

// Reorder all links according to the defined array
  $links = reorder_links($links, array('comment_add', 'comment_comments'));

//Pontus Nilsson, Digitalist

Fungerar!

Marcus 78's picture

Fungerar nu

Fick detta från ett PHP forum en liten stund före ditt svar Pontus. Det ser väl ut att vara ungefär samma kod (alltså inte identisk utan den gör väl samma sak på i stort sett samma vis).
Tack för hjälpen igen i varje fall Pontus

function my_array_unique($array) {
   $unique = array();
   foreach($array as $part)
      if(!in_array($part, $unique))
         $unique[] = $part;
   return $unique;
}

$unique = my_array_unique($sokvagar);

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: