2014-10-19 37 views
9

Ho appena imbattuto in questo codice:cosa fa array_filter senza fare callback?

array_filter(array_map('intval', $array)); 

Sembra di tornare tutte le voci di $ array convertiti in int, dove il numero è> 0

Tuttavia non riesco a vedere sulla pagina di manuale che questo è definito. Si suppone che restituisca il valore dell'array se la funzione di callback restituisce true. Ma non esiste una funzione di callback definita qui.

Confondere è anche che la funzione di callback è opzionale sulla pagina di manuale: http://php.net/manual/en/function.array-filter.php

+1

'array_filter' di solito rimuove solo vuoti (o equivalenti) nell'array se non vi sono callback. – Rasclatt

+1

Questo viene estratto dal manuale *** Se non viene fornita alcuna richiamata, tutte le voci dell'array pari a FALSE (vedere la conversione in booleano) verranno rimosse ***. –

+0

Sì, evviva, l'ho trascurato – jdog

risposta

12

rimuove i valori vuoti o equivalenti da matrice:

Esempio # 2 array_filter() senza callback

$entry = array(
       0 => 'foo', 
       1 => false, 
       2 => -1, 
       3 => null, 
       4 => '' 
      ); 

    print_r(array_filter($entry)); 

Risultato

Array 
(
    [0] => foo 
    [2] => -1 
) 

Vedere la original documentation dal manuale.

6

Se leggete solo un po 'più avanti nella pagina a cui si è collegato, si trova, "se non richiamata viene fornito, tutte le voci di array uguale a FALSE (vedi conversione in booleano) sarà rimosso. "

+1

Devo essere un po 'cieco! – jdog

+1

Succede a tutti a volte. –