For det første har du en del syntaksfejl og for det andet så evaluerer is_null('') til false. Prøv med:
foreach ($temp as $key => $value)
{
if (empty($value['id'])) {
unset($temp[$key]);
}
}
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?
ups jeg har opdaget en fejl, jeg havde glemt det skulle være
$temp[] = array('id' => '12','navn' => 'etnavn');
$temp[] = array('id' => '','navn' => '');
$output[] = $temp;
altså inde i et array mere
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å?
Indeholder $output kun ét array? Og hvorfor kommer 'Store' lige pludselig ind i billedet?
store var fordi jeg fandt ud af jeg hellere ville have den til at tjekke efter en anden, $output indeholder alle $temp[] arrays.
Så ville jeg nok bruge følgende:
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).