Buona domenica
Non riesco a usare foreach su un array multidimensionale. Non capisco i risultati che mi dà
$sql = mysqli_query($mysqli_connection, "SELECT gruppo, nome_foto, link, if(link LIKE 'http%', 1, 0) as completi, if(link LIKE 'Error%', 1, 0) as incompleti FROM foto WHERE categoria = '$CATEGORIA' AND cartella_locale = '$DATA' AND link IS NOT NULL ORDER BY link DESC");
while($riga = mysqli_fetch_assoc($sql)){
if($riga['completi']){
$data['completi'][$riga['gruppo']][] = $riga['nome_foto']."__".$riga['link'];
}
if($riga['incompleti']){
$data['incompleti'][$riga['gruppo']][] = $riga['nome_foto']."__".$riga['link'];
if(array_key_exists($riga['gruppo'], $data['completi'])){
unset($data['completi'][$riga['gruppo']]);
}
}
}
Io ho questo array, fatto di 2 array
il primo array completi
gruppo 1, e gli elementi di gruppo 1
il secondo array incompleti
del gruppo 2 gli elementi del gruppo 2
del gruppo 4 gli elementi del gruppo 4
Array
(
[completi] => Array
(
[1] => Array
(
[0] => DSC_8857.JPG__http
[1] => DSC_8858.JPG__http
[2] => DSC_8859.JPG__http
)
)
[incompleti] => Array
(
[2] => Array
(
[0] => DSC_8861.JPG__Error
[1] => DSC_8862.JPG__Error
)
[4] => Array
(
[0] => DSC_8876.JPG__Error
)
)
)
lo invio tramite
echo json_encode($data);
in javascript lo acchiappo con
let id_numbers = JSON.parse(xhttp.responseText);
Ora...
alert(id_numbers.completi[1]);
funziona, mentre invece
alert(id_numbers.completi.length);
Non funziona... e dovrebbe segnarmi 1 elemento...
Invece
alert(id_numbers.completi[1].length);
funziona e mi segna 3 elementi
e ovviamente con questi risultati non riesco a fare un foreach, e nemmeno un for
il problema è che sto usando come key dei numeri che mi servono?
Non posso farli partire da 0
perché io devo fare un foreach del tipo
foreach su [completi] e mi dà 1 elemento (gruppo 1)
un foreach sul gruppo 1 e mi dà 3 elementi