Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 2908|Atsakyti: 0

Naujokų įrašas, PHP apibendrina 6 būdus, kaip pereiti masyvus

[Kopijuoti nuorodą]
Paskelbta 2022-06-08 15:56:10 | | |


Kasdienėje PHP veikloje masyvai yra labiausiai paplitusi struktūra, o su masyvu susijusį turinį susiduriame beveik kiekvieną dieną. Taigi kyla klausimas, kaip apskritai pereiti ir apdoroti masyvus.


1 、 kiekvienam
Tai pažįstama, ar ne jūsų mėgstamiausia?
$arr = ['a', 'b', 'c'];
foreach ($arr kaip $key => $value) {
    $arr[$key] = $value . "_i";
}
print_r ($arr); ['a_i', 'b_i', 'c_i'];


2 、 array_map
Naudokite anonimines funkcijas kiekvienam masyvo elementui tvarkyti. Naujas masyvas grąžinamas, kai perėjimas baigtas
$arr = ['a', 'b', 'c'];
$arr = array_map(funkcija ($item) {
    grąžinti $item . "_i";
}, $arr);
print_r ($arr); ['a_i', 'b_i', 'c_i'];
Vienu metu galite dirbti su keliais masyvais
$arr_1 = ['a', 'b', 'c'];
$arr_2 = ['tu', 'geras', 'yra', 'originalus', 'nuodėmė'];
$arr_n = [...];
$arr = array_map(funkcija ($item_1, $item_2) {
    grąžinti $item_1 . '_' . $item_2 . "_i";
}, $arr_1, $arr_2);
print_r ($arr); ['a_ you _i', 'b_ is good_i', 'Are you c__i', '_original _i', '_sin_i']
Taip, perėjimų skaičius priklauso nuo ilgiausio masyvo.
Pervažiavus 3 kartus, $arr_1 iš tikrųjų baigiamas, todėl $item_1 reikšmės po to yra neapibrėžtos


3、array_walk
Perėjimas per savo masyvą kaip atskaitos leidimas neturi grąžinamos vertės ir gali apdoroti tik vieną masyvą.
$arr = ['a', 'b', 'c'];
array_walk($arr, funkcija (&$item) {
    $item = $item . "_i";
});


print_r ($arr); ['a_i', 'b_i', 'c_i'];
Atkreipkite dėmesį &$item, taip, yra papildomas &, o tai reiškia, kad jūsų parametras gauna duomenis pagal nuorodą. Viskas, ką jums reikia padaryti, tai rasti būdą, kaip pakeisti šį parametrą.


Jei susiduriate su dvimačiais masyvais, apdorojimo būdas taip pat yra neatsiejamas.
$arr = [
    ['vardas' => 'a'],
    ['vardas' => 'b'],
    ['vardas' => 'c']
];
array_walk($arr, funkcija (&$item) {
    $item['vardas'] = $item['vardas'] . "_i";
});
print_r ($arr); [['name' => 'a_i'], ['name' => 'b_i'], ['name' => 'c_i']];


4 、 už
Tai turėtų būti super bendra sintaksė
$arr = ['a', 'b', 'c'];
už ($i = 0; $i < skaičius ($arr); ++$i) {
    $arr[$i] = $arr[$i] . "_i";
}
print_r ($arr); ['a_i', 'b_i', 'c_i'];
Nerekomenduojama. Jis nėra toks efektyvus kaip foreach. O rašymo būdas yra šiek tiek sudėtingesnis nei pamiršti.


5 、 kiekvienas
Haha, ši funkcija buvo atsisakyta PHP7.2 @deprecated ir jaučiasi ypač senamadiškas. Šio rašymo metodo vykdymo efektyvumas taip pat nėra geras, o naujokai turėtų atsisakyti tiesiogiai.
$arr = ['a', 'b', 'c'];
o (sąrašas($key, $value) = kiekvienas($arr)) {
    $arr[$key] = $value . "_i";
}
print_r ($arr); ['a_i', 'b_i', 'c_i'];


6 、 Atstatyti
Tiksliau sakant, tai ne tik funkcija, kurią reikia nustatyti iš naujo, bet ir kelių integruotų funkcijų derinys, kuris iš esmės nenaudojamas kodui rašyti
$arr = ['a', 'b', 'c'];
reset() rodyklę į galvą, tiesą sakant, numatytasis yra nurodyti pradžią, galite nepaisyti šio sakinio
atstatyti ($arr);
current(), kad gautumėte dabartinio žymeklio elemento reikšmę
o ($value = srovė($arr)) {
    key(), kad gautumėte dabartinio žymeklio elemento apatinį indeksą
    $arr[raktas($arr)] = $value . "_i";
    next() žymeklis į kitą
    kitas ($arr);
}
print_r ($arr); ['a_i', 'b_i', 'c_i'];





Ankstesnis:[Praktinis mūšis] ASP.NET branduolių pakavimas į vaizdo NUGET skirtojo laiko problemą
Kitą:"Kindeditor Editor" masinio įkėlimo vaizdo plėtiniai (be "Flash" priklausomybės)
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com