Językiem jest PHP. Mam jedno foreach ($ a jako $ b) i inne foreach ($ c jako $ d => $ e). Jak je połączyć, aby odczytać jako jeden. Zmęczony foreach (($ a as $ b) & & ($ c as $ d => $ e)), ale to jest śmieci.Jak połączyć dwie pętle foreach w jeden
6
A
Odpowiedz
0
To zrobi, co chcesz, myślę. Będzie to postęp zarówno w przypadku macierzy w tym samym czasie w całej pętli. Można zawsze break
ręcznie jeśli $c
ma inny rozmiar niż $a
i trzeba łamanie logiki na podstawie rozmiaru tablicy:
foreach($a as $b)
{
list($d,$e) = each($c);
//continue on with $b, $d and $e all set
}
each()
przesunie wskaźnik tablicy $c
na każdej iteracji.
3
Nie rozumiem, co próbujesz zrobić. Jeśli chcesz dotrzeć do nich jedna po drugiej po prostu korzystać z dwóch pętli:
foreach ($a as $b) { ... }
foreach ($c as $d => $e) { ... }
jeśli chcesz wszystkie kombinacje z $a
i $c
:
foreach ($a as $b) {
foreach ($c as $d => $e) {
// do stuff
}
}
Myślę, że można zrobić coś takiego:
foreach (array_merge($a, $c) as $k => $v) {
...
}
ale nie koniecznie by to doradziłem.
22
Możesz być zainteresowany SPL's MultipleIterator
np
// ArrayIterator is just an example, could be any Iterator.
$a1 = new ArrayIterator(array(1, 2, 3, 4, 5, 6));
$a2 = new ArrayIterator(array(11, 12, 13, 14, 15, 16));
$it = new MultipleIterator;
$it->attachIterator($a1);
$it->attachIterator($a2);
foreach($it as $e) {
echo $e[0], ' | ', $e[1], "\n";
}
drukuje
1 | 11
2 | 12
3 | 13
4 | 14
5 | 15
6 | 16
7
1) Pierwsza metoda
<?php
$FirstArray = array('a', 'b', 'c', 'd');
$SecondArray = array('1', '2', '3', '4');
foreach(array_combine($FirstArray, $SecondArray) as $f => $n) {
echo $f.$n;
echo "<br/>";
}
?>
lub 2) Druga metoda
<?php
$FirstArray = array('a', 'b', 'c', 'd');
$SecondArray = array('1', '2', '3', '4');
for ($index = 0 ; $index < count($FirstArray); $index ++) {
echo $FirstArray[$index] . $SecondArray[$index];
echo "<br/>";
}
?>
Powiązane problemy
- 1. Python połączyć dwie pętle
- 2. Jak wrobić dwie pętle w listowych pytona
- 3. Tylko pętle Foreach Loop raz
- 4. Generowanie identyfikatorów w Knockout Foreach pętle
- 5. Jak mogę policzyć pętle w mvc3 w @foreach
- 6. równoległe pętle foreach wytwarzają błąd mclapply
- 7. Jak szybko połączyć dwie linie w Vimie?
- 8. Jak połączyć dwie tablice w Objective-C?
- 9. Jak połączyć dwie macierze w Python OpenCV?
- 10. Jak mogę połączyć dwie tablice w C?
- 11. jak połączyć dwie tabele w postgresql
- 12. Jak połączyć dwie krotki w Pythonie?
- 13. Jak połączyć dwie tabele w zapytaniu?
- 14. Połączyć dwie podkwerendy w MySQL
- 15. Swift: jak połączyć dwie instancje Dictionary?
- 16. zagnieżdżone pętle foreach w R, aby zaktualizować wspólną tablicę
- 17. JavaScript: jak połączyć/połączyć dwie tablice, aby połączyć się w jedną tablicę?
- 18. Jak połączyć te trzy metody w jeden
- 19. Jak połączyć dwa proci w jeden?
- 20. Jak połączyć reguły nth-child() w jeden?
- 21. Jak połączyć wiele słoików w jeden?
- 22. Rails 3 Połączyć dwie zmienne
- 23. PHP: Jak połączyć te dwie klasy?
- 24. Jak połączyć dwie wartości obiektu poprzez klawisze
- 25. Jak połączyć dwie wartości __m128 do __m256?
- 26. połączyć dwie złożone struktury danych
- 27. połączyć dwie kwerendy ActiveRecord wyniki
- 28. jak połączyć dwie kolumny z pandami if/else w Pythonie?
- 29. Dwie akcje onClick jeden przycisk
- 30. Połączyć dwie zmienne datetime w jedną
To najciekawszy pokój kodu widziałem dzisiaj. Plus jeden za to. Czy tablice MUSZĄ być jednakowej długości, czy też zatrzymujesz iterację tylko na jednym z nich? –
To zależy od tego, czy ustawisz flagę MultipleIterator :: MIT_NEED_ANY, czy MultipleIterator :: MIT_NEED_ALL. Przy MIT_NEED_ALL iterator zatrzymuje się, jeśli któryś z wewnętrznych iteratorów nie ma już żadnych elementów. W MIT_NEED_ANY iterator trwa tak długo, jak przynajmniej jeden wewnętrzny iterator ma inny element, wszystkie inne elementy stają się NULL. MIT_NEED_ALL jest domyślnie. – VolkerK
Dziękuję za informacje, bardzo fajne! –