Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 2908|Válasz: 0

Újoncok posztja, a PHP összefoglalja a tömbök 6 módját a tömbök áthaladására

[Linket másol]
Közzétéve 2022. 06. 08. 15:56:10 | | |


A PHP napi működésében a tömbök a leggyakoribb struktúrák, és szinte minden nap dolgozunk a tömbrel kapcsolatos tartalommal. Tehát a kérdés az, hogyan lehet általánosságban áthaladni és feldolgozni a tömböket.


1、foreach
Ismerős a kedvenced, nem a kedvenced?
$arr = ['a', 'b', 'c'];
foreach ($arr mint $key => $value) {
    $arr[$key] = $value . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];


2、array_map
Használj anonim függvényeket a tömb minden elemének kezelésére. Új tömb érkezik, amikor a behaladás befejeződött
$arr = ['a', 'b', 'c'];
$arr = array_map(függvény ($item) {
    Visszatérjen $item. '_i';
}, $arr);
print_r($arr); ['a_i', 'b_i', 'c_i'];
Egyszerre több tömbrel is dolgozhatsz
$arr_1 = ['a', 'b', 'c'];
$arr_2 = ['te', 'jó', 'van', 'eredeti', 'bűn'];
$arr_n = [...];
$arr = array_map(függvény ($item_1, $item_2) {
    Return $item_1. '_' . $item_2. '_i';
}, $arr_1, $arr_2);
print_r($arr); ['a_ te _i', 'b_ is good_i', 'Are you c__i', '_original _i', '_sin_i']
Igen, a haladások száma a leghosszabb tömbön alapul.
Háromszori áthaladás után a $arr_1 valójában teljes, így az $item_1 értékei ezután nullákat jelentenek


3、array_walk
A tömbben való hivatkozási passzként való áthaladás nem hozza vissza a visszatérési értéket, és csak egy tömböt lehet feldolgozni.
$arr = ['a', 'b', 'c'];
array_walk($arr, függvény (&$item) {
    $item = $item . '_i';
});


print_r($arr); ['a_i', 'b_i', 'c_i'];
Figyelj meg &$item, igen, van egy extra &, ami azt jelenti, hogy a paramétered hivatkozással fogad adatokat. Csak meg kell találnod a módot ennek a paraméternek a megváltoztatására.


Ha kétdimenziós tömbökkel dolgozol, a feldolgozási módszer is elválaszthatatlan.
$arr = [
    ['name' => 'a'],
    ['name' => 'b'],
    ['name' => 'c']
];
array_walk($arr, függvény (&$item) {
    $item['név'] = $item['név'] . '_i';
});
print_r($arr); [['name' => 'a_i'], ['name' => 'b_i'], ['name' => 'c_i']];


4、for
Ez szuper általános szintaxis lehet
$arr = ['a', 'b', 'c'];
for ($i = 0; $i < szám($arr); ++$i) {
    $arr[$i] = $arr[$i] . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];
Nem ajánlott. Nem olyan hatékony, mint a foreach. Az írásmód pedig kissé nehézkesebb, mint a forreach.


5、mindegyik
Haha, ezt a funkciót a PHP7.2-ben elhagyták @deprecated, és különösen régimódinak tűnik. Ennek az írásmódnak a végrehajtási hatékonysága sem jó, és a kezdőknek azonnal fel kell adniuk.
$arr = ['a', 'b', 'c'];
míg (list($key, $value) = each($arr)) {
    $arr[$key] = $value . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];


6、reset
Pontosan, ez nem csupán egy újraindítható függvény, hanem több beépített funkció kombinációja is, amelyet gyakorlatilag nem használnak kód írásához
$arr = ['a', 'b', 'c'];
reset() mutató a fejhez, valójában alapértelmezett a kezdetre mutatni, ezt a mondatot figyelmen kívül hagyhatod
reset($arr);
current() esetén az aktuális mutató elemértékének megszerzéséhez
míg ($value = current($arr)) {
    key() a jelenlegi mutató elem indexének eléréséhez
    $arr[kulcs($arr)] = $value . '_i';
    next() mutató a következőre
    next($arr);
}
print_r($arr); ['a_i', 'b_i', 'c_i'];





Előző:[Gyakorlati Harc] A ASP.NET magok csomagolása egy Image NUGET időkilépési problémába
Következő:Kindeditor szerkesztő tömeges feltöltési képkiterjesztések (Flash függetlenség nélkül)
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com