Qui questa funzione in PHP che permette di unire qualsiasi quantità N di diverse matrici di lunghezza in un modo che array di uscita sarà in ordine successivo: Array1[0],Array2[0],..,ArrayN[0],Array1[1],Array2[1],..,ArrayN[1]...
:spiegare come funziona questa funzione personalizzata PHP
function array_zip_merge() {
$output = array();
// The loop incrementer takes each array out of the loop as it gets emptied by array_shift().
for ($args = func_get_args(); count($args); $args = array_filter($args)) {
// &$arg allows array_shift() to change the original.
foreach ($args as &$arg) {
$output[] = array_shift($arg);
}
}
return $output;
}
// test
$a = range(1, 10);
$b = range('a', 'f');
$c = range('A', 'B');
echo implode('', array_zip_merge($a, $b, $c)); // prints 1aA2bB3c4d5e6f78910
Pur comprendendo quello che ognuno di funzioni incorporate in questo esempio fa da solo, non riesco a capirmi come tutto funzioni insieme, nonostante includa commenti esplicativi ...
Qualcuno può scomporlo per me, per favore? La funzione funziona bene così com'è, mi fa impazzire che non capisco come funziona ...
P.S: questa funzione è presa dalla domanda Interleaving multiple arrays into a single array.
Scrivi tu stesso una funzione simile, ti darà un'idea di ciò che è necessario. Le probabilità sono che tu eventualmente riscrivi sopra il codice te stesso.Detto questo, ispeziona il contenuto delle variabili nel codice sopra in diversi punti di esecuzione per avere un'idea di cosa fa. –