09. november 2008 - 22:57Der er
7 kommentarer og 1 løsning
Slette tomt element i multidimensionalt array
Hvis jeg har et array på formen $temp[] = array('id' => '12','navn' => 'etnavn'); $temp[] = array('id' => '','navn' => '');
Og gerne vil slette det tomme array hvis id er tomt, så har jeg lavet nedenstående, men det virker ikke, nogen der kan give mig et hint til hvad der er galt? $i=0; foreach($temp[$i]['id']) as $value { if (is_null($value)) { unset($temp[$i]); } $i++ }
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
tusind tak, smid et svar. Lige for at være sikker på jeg har forstået det rigtig, så behøver jeg altså slet ikke give den den et nr i $temp[$i]['id'] når man sætter den som as $key => $value? så bliver den simpelthen automatisk sat?
har fået lavet foreach ($output as $key => $value) { if (empty($value[$i]['Store'])) { unset($output[$key]); $i++; } } der ser ud til at virke, er det korrekt måde at gøre det på?
foreach ($output as $key1 => $value) { foreach ($output[$key1] as $key2 => $value) { if (empty($value['store'])) { unset($output[$key1][$key2]); } } }
Din metode virker fint nok når det kun udføres en gang og hvis $i ikke tilfældigvis allerede har fået en værdi fra en tidligere gennemløbet løkke, men hvis du vil have en mere fremtidssikret kode så er ovenstående en lidt bedre løsning (og afhængig af din php-version kan den nok sagtens optimeres).
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.