Avatar billede hoppe11 Nybegynder
27. juni 2007 - 15:10 Der er 9 kommentarer og
1 løsning

array_map() og flerdimensionelt array

Jeg har et flerdimensionelt array hvor jeg skal køre hver værdi igennem en funktion

eks.
$tst_arr = array(
    0,
    1,
    array(2,3),
    4,
    5
);
Avatar billede hoppe11 Nybegynder
27. juni 2007 - 15:11 #1
må hellere lige tilføje at det returnerede array skal have samme struktur som det oprindelige :)
Avatar billede pidgeot Nybegynder
27. juni 2007 - 15:14 #2
Avatar billede hoppe11 Nybegynder
27. juni 2007 - 15:45 #3
jeg sad faktisk lige og lurede på den..

men hvad menes der med det her?

Note: If funcname needs to be working with the actual values of the array, specify the first parameter of funcname as a reference. Then, any changes made to those elements will be made in the original array itself.

det er det oprindelige array jeg skal arbejde videre med bagefter
Avatar billede pidgeot Nybegynder
27. juni 2007 - 15:50 #4
Som der står, lav den første parameter i din funktionsdefinition til en reference - det gør du ved at sætte & foran, altså &$item i stedet for $item.

Det gør at parameteren peger direkte på det element i arrayet, fremfor en kopi af det.
Avatar billede hoppe11 Nybegynder
27. juni 2007 - 17:37 #5
mit array står stadig urørt?

$tst_arr = array(
    0,
    1,
    array(2,3),
    4,
    5
);

function map($value)
{
    return $value+10;
}
array_walk_recursive(&$tst_arr, 'map', $tst_arr);

print_r($tst_arr);
Avatar billede erikjacobsen Ekspert
27. juni 2007 - 17:45 #6
Således:

$tst_arr = array(
    0,
    1,
    array(2,3),
    4,
    5
);

function map(&$value)
{
    $value= $value+10;
}
array_walk_recursive($tst_arr, 'map');

print_r($tst_arr);
Avatar billede hoppe11 Nybegynder
27. juni 2007 - 17:57 #7
pidgeot > lav et svar :)

- og tak for hjælpen begge
Avatar billede hoppe11 Nybegynder
27. juni 2007 - 18:07 #8
noget andet er.. hvordan definerer jeg så min funktion her?

array_walk_recursive($this->str_arr, '$this->str_strip');
Avatar billede pidgeot Nybegynder
27. juni 2007 - 18:13 #9
Hvis du mener hvordan du får brugt en funktion i en klasse, så skriver du array($this,'str_strip') i stedet for den anden parameter, jf. syntaxen for callbacks.

http://dk.php.net/manual/en/language.pseudo-types.php#language.types.callback
Avatar billede hoppe11 Nybegynder
28. juni 2007 - 16:02 #10
lige præcis..

du skal have tak for hjælpen! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester