Ciao a tutti,
qualcuno è in grado di spiegarmi il perché di questo comportamento di php?
Il secondo blocco di codice, identico al primo, genera un warning.
Array sizes are inconsistent
Se vado a vedere il dump di $data vedo l'inconsistenza ma non ne capisco la ragione, sembra che
$data = array();
non resetti quell'array
mi ci sto mischiando il cervello...
codice:
<?
error_reporting(E_ALL);
// PRIMO BLOCCO DI CODICE
$data = array();
$data[2] = array('volume' => "primo", 'edition' => 2);
$data[3] = array('volume' => "secondo", 'edition' => 1);
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
// SECONDO BLOCCO DI CODICE
$data = array();
$data[2] = array('volume' => "terzo", 'edition' => 2);
$data[3] = array('volume' => "quarto", 'edition' => 1);
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
var_dump($volume);
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
Se cambio il modo di riempire l'array e lo faccio in modo "più corretto" quel warning non appare..
$data[] = array('volume' => "terzo", 'edition' => 2);
$data[] = array('volume' => "quarto", 'edition' => 1);
qualcuno sa spiegarmi cosa mi sfugge?
grazie!