mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 27.04.2024 04:25 Benutzername: Passwort: Auto-Login

Thema: PHP: Schlüssel von Arrays ändern vom 23.09.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP: Schlüssel von Arrays ändern
Autor Nachricht
rueckblick
Threadersteller

Dabei seit: 15.01.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 23.09.2006 14:36
Titel

PHP: Schlüssel von Arrays ändern

Antworten mit Zitat Zum Seitenanfang

Hi,

also ich muss irgendwie die assoziativen Schlüssel eines Arrays bearbeiten können, z.B.

aus

array('link' => 'ein link', 'bild' => 'ein Bild');

soll sowas werden

array('g:link' => 'ein link', 'g:bild' => 'ein bild');


Geht das mit PHP Funktionen komfortabel oder muss ich ne eigene Funktion basteln, die das macht? Also mit foreach() durchlaufen und vergleichen, ändern, usw.?

Vergleichen muss ich auch, da evtl. nicht alle Schlüssel geändert werden sollen, nur die Schlüssel, die in einem weiteren Array vorhanden sind. Ein Vergleichsarray sozusagen.
  View user's profile Private Nachricht senden
caZpa
Account gelöscht


Ort: -

Verfasst Sa 23.09.2006 15:31
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
foreach ($arr_old as $k => $v) {
    $arr_new['g:'.$k] = $v;
}
unlink($arr_old);
 
Anzeige
Anzeige
rueckblick
Threadersteller

Dabei seit: 15.01.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 23.09.2006 15:51
Titel

Antworten mit Zitat Zum Seitenanfang

hi cazpa,

vielen dank für deinen Code!

Also ich habe eigentlich das selbe schon programmiert, allerdings etwas aufwendiger und nicht so effizient, wie deine Lösung, aber eigentlich das selbe.

Ich habe deinen Code in combineArrays() integriert. Meine Version ist mergeArrays().

Der einzige Unterschied ist, dass ich die Funktion array_merge() benutze. Aber denke ich werde deine Version benutzen, weil array_merge() doppelte Schlüssel löscht und nur dsa letzte Element behält. Benutze ich array_merge_recursive(), was doppelte Schlüssel beibehält, bekomme ich eine Warnung ausgespuckt, dass eine Rekursion entdeckt wurde! Weiß nicht, was ich davon halten soll. Deswegen eher deine Version.

Danke nochmal.

Code:

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  /**
  * merge two arrays
  * same work as XML::combineArrays()
  *
  * @param &array $aAllTags Array with special Tagnames
  * @param &array $aValCont Multi dimensional array
  * @param string $sTitle Prefix for new keys
  * @return array A combined array
  */
  function mergeArrays(&$aAllTags, &$aValCont, $sTitle)
  {
    $aReturn = array();

    foreach($aValCont as $k => $v)
    { // HELP: $k=XMLtag $v=Array $v[$i]=Value
      if( in_array($k, $aAllTags) )
      {
        $aTmp[$k] = $v;
        $aReturn = array_merge($aReturn, $aTmp);
      }
      else
      {
        $aTmp[$sTitle . ':' . $k] = $v;
        $aReturn = array_merge($aReturn, $aTmp);
      }
    }
    return $aReturn;
  }
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  /**
  * combine two arrays
  * same work as XML::mergeArrays()
  *
  * @param &array $aAllTags Array with special Tagnames
  * @param &array $aValCont Multi dimensional array
  * @param string $sTitle Prefix for new keys
  * @return array A combined array
  */
  function combineArrays(&$aAllTags, &$aValCont, $sTitle)
  {
    foreach ($aValCont as $k => $v)
    { // HELP: $k=XMLtag $v=Array $v[$i]=Value
      if( in_array($k, $aAllTags) )
      {
        $arr_new[$k] = $v;
      }
      else
      {
        $arr_new[$sTitle.':'.$k] = $v;
      }
    }
    return $arr_new;
  }
  View user's profile Private Nachricht senden
 
Ähnliche Themen [PHP] array: schlüssel und werte ändern?
Actionscript / PHP: Arrays in Arrays bei Übergabe mit Post?
XML Ausgabe in Arrays
Arrays anlegen und auslesen.
pejot vs. schleifen und arrays
attach movie & arrays
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.