Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 2908|Risposta: 0

Post dei nuovi arrivati, PHP riassume 6 modi per attraversare array

[Copiato link]
Pubblicato su 08/06/2022 15:56:10 | | |


Nelle operazioni quotidiane di PHP, gli array sono la struttura più comune, e ci occupiamo quasi ogni giorno di contenuti relativi agli array. Quindi la domanda è: come si attraversano e si elaborano array in generale?


1、per ogni
È familiare, non è il tuo preferito?
$arr = ['a', 'b', 'c'];
foreach ($arr come $key => $value) {
    $arr[$key] = $value . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];


2、array_map
Usa funzioni anonime per gestire ogni elemento dell'array. Un nuovo array viene restituito quando il percorso è completato
$arr = ['a', 'b', 'c'];
$arr = array_map(funzione ($item) {
    torna $item. '_i';
}, $arr);
print_r($arr); ['a_i', 'b_i', 'c_i'];
Puoi lavorare con più array contemporaneamente
$arr_1 = ['a', 'b', 'c'];
$arr_2 = ['tu', 'buono', 'è', 'originale', 'peccato'];
$arr_n = [...];
$arr = array_map(funzione ($item_1, $item_2) {
    ritorna $item_1. '_' . $item_2. '_i';
}, $arr_1, $arr_2);
print_r($arr); ['a_ tu _i', 'b_ è good_i', 'Sei c__i', '_original _i', '_sin_i']
Sì, il numero di attraversamenti si basa sull'array più lungo.
Dopo aver attraversato 3 volte, $arr_1 è effettivamente completato, quindi i valori di $item_1 sono nulli dopo di ciò


3、array_walk
Attraversare il tuo array come reference pass non ha valore di ritorno e può elaborare solo un array.
$arr = ['a', 'b', 'c'];
array_walk($arr, funzione ($item) {
    $item = $item . '_i';
});


print_r($arr); ['a_i', 'b_i', 'c_i'];
Nota $item, sì, c'è un extra &, il che significa che il tuo parametro riceve dati per riferimento. Tutto quello che devi fare è trovare un modo per cambiare questo parametro.


Se si tratta di array bidimensionali, anche il metodo di elaborazione è inseparabile.
$arr = [
    ['nome' => 'a'],
    ['name' => 'b'],
    ['nome' => 'c']
];
array_walk($arr, funzione ($item) {
    $item['nome'] = $item['nome'] . '_i';
});
print_r($arr); [['name' => 'a_i'], ['name' => 'b_i'], ['name' => 'c_i']];


4、per
Questa dovrebbe essere una sintassi molto generica
$arr = ['a', 'b', 'c'];
per ($i = 0; $i < conte ($arr); ++$i) {
    $arr[$i] = $arr[$i] . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];
Non consigliato. Non è efficiente come foreach. E il metodo di scrittura è leggermente più macchinoso rispetto a Forreach.


5、ciascuno
Ahah, questa funzione è stata abbandonata in PHP7.2 @deprecated e sembra particolarmente all'antica. Anche l'efficienza di questo metodo di scrittura non è buona, e i principianti dovrebbero rinunciare subito.
$arr = ['a', 'b', 'c'];
while (list($key, $value) = each($arr)) {
    $arr[$key] = $value . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];


6、reset
Per essere precisi, non è solo una funzione da reset, ma anche una combinazione di più funzioni integrate, che fondamentalmente non viene usata per scrivere codice
$arr = ['a', 'b', 'c'];
reset() puntatore alla testa, infatti, il punto predefinito è puntare all'inizio, puoi ignorare questa frase
reset($arr);
current() per ottenere il valore dell'elemento del puntatore corrente
mentre ($value = corrente($arr)) {
    key() per ottenere l'elemento sottoscript del puntatore corrente
    $arr[chiave($arr)] = $value . '_i';
    Next() puntatore al prossimo
    prossimo ($arr);
}
print_r($arr); ['a_i', 'b_i', 'c_i'];





Precedente:[Practical Battle] Confezionamento ASP.NET core in un'immagine NUGET Problema di timeout
Prossimo:Kindeditor Editor Estensioni di Caricamento Immagine in Massa (Nessuna dipendenza da Flash)
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com