Avatar billede nemlig Professor
08. august 2021 - 10:52 Der er 1 kommentar og
1 løsning

Array - kopiere, rette og slette post

Hejsa. Håber på lidt hjælp.
Jeg har et udtræk fra SQL jf. nedenfor. Der er 50-60 poster, hvor jeg viser de første 3.
Post/key nr. 2 har bl.a. følgende værdi:
[co2] => 0xcc3314;0xce0c14

Værdien "0xcc3314;0xce0c14" er 2 værdier adskilt af semikolon, og som jeg gerne vil have med i hver sin post.
Dermed skal post 2 kopieres til 2 enslydende poster, bortset fra at på den ene skal [co2] have værdien 0xcc3314 og på den anden skal [co2] have værdien 0xce0c14.

Er det noget med:
1. At kopiere post nr. 2
2. At rette post nr. 2, ved at sætte værdien "0xcc3314" i [co2]
3. At rette kopien ved at sætte værdien "0xce0c14" i [co2]

Array
(
    [0] => Array
        (
            [id] => 1
            [nr] => 4.04
            [fugt] => 0xcc4627
            [co2] =>
            [ihcNr] => 7
        )

    [1] => Array
        (
            [id] => 2
            [nr] => 4.05
            [fugt] => 0xcc4e27
            [co2] =>
            [ihcNr] => 7
        )

    [2] => Array
        (
            [id] => 3
            [nr] => 4.01
            [fugt] => 0xcc1c27
            [co2] => 0xcc3314;0xce0c14
            [ihcNr] => 7
        )
)
Avatar billede nemlig Professor
08. august 2021 - 13:12 #1
Fik det løst ved hjælp af Google. Skriver lige senere løsningen.
Avatar billede nemlig Professor
08. august 2021 - 14:17 #2
Her er løsningen med kommentarer:

//Søg i arrayet og overskriv værdien på [co2]
foreach ($res2 as $k => $v) {
  if ($v['co2']=='0xcc3314;0xce0c14') {
    $res2[$k]['co2']='0xcc3314';
    $keyNumber = $k; //Gem key nummer på den fundne key
  }
}

//Næste værdi i arrayet
$antalKeys = $antalRum + 1;
//Kopiere posten
$res2[$antalKeys] = $res2[$keyNumber];
//ændre værdien af [co2]
$res2[$antalKeys]['co2'] = '0xce0c14';

//sorter på id-nr.
usort($res2, function($a, $b) {
    return $a['id'] - $b['id'];
});
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

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