Willkommen auf dem Portal für Mediengestalter
|
|
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 |
|
|
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.
|
|
|
|
|
caZpa
Account gelöscht
Ort: -
|
Verfasst Sa 23.09.2006 15:31
Titel
|
|
|
Code: | foreach ($arr_old as $k => $v) {
$arr_new['g:'.$k] = $v;
}
unlink($arr_old); |
|
|
|
|
|
Anzeige
|
|
|
rueckblick
Threadersteller
Dabei seit: 15.01.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 23.09.2006 15:51
Titel
|
|
|
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;
}
|
|
|
|
|
|
|
|
|
Ä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
|
|
|
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.
|
|