php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.10.2007, 15:49  
Neuer Benutzer
 
Registriert seit: 30.10.2007
Beiträge: 2
Diplomatic 55
Standard mehrere Arrays mit Foreach?

Hey,
hab das Problem das ich mehrere Arrays die alle gleich viel Einträge enthalten auf einmal auslesen muss(will)!
Bsp:
Code:
$array1 = array(1, 2, 3, 4);
$array2 = array(5, 6, 7, 8);

foreach($array1 as $label, $array2 as $test)
echo "<row label=\"".$label."\" test=\"".$test."\" />";
Ich stell mir da so was ähnliches vor nur finde ich bei google usw nichts in der richtung!
Diplomatic 55 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.10.2007, 16:21  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Du benutzt doch Nummern als keys. Also praktisch $array1[1] = 1;

Dann mach doch einfach folgendes:

PHP-Code:

$array1 
= array(1234);
$array2 = array(5678);

foreach(
$array1 as $key => $label)
 echo 
$label." ".$array2[$key]; 
Das funktioniert aber nur wenn deine Array wirklich gleich viele Werte haben. Was macht das eigentlich für einen Sinn?
cycap ist offline  
Alt 30.10.2007, 17:05  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cycap
Das funktioniert aber nur wenn deine Array wirklich gleich viele Werte haben.
Und wenn beide die gleichen Keys haben!
__________________
Gruss
L
lazydog ist offline  
Alt 30.10.2007, 19:06  
Neuer Benutzer
 
Registriert seit: 30.10.2007
Beiträge: 2
Diplomatic 55
Standard

Ja das is mir kla! :wink:
Aber ich hab wohl vergessen den heikelsten faktor zu nennen!

ich weiß nämlich leider nicht wie viele einträge ich habe!

Aber es sind immer gleich viele...
Diplomatic 55 ist offline  
Alt 30.10.2007, 19:08  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ja und wo ist jetzt dein Problem?
cycap ist offline  
Alt 31.10.2007, 02:07  
Erfahrener Benutzer
 
Registriert seit: 14.10.2007
Beiträge: 306
PHP-Kenntnisse:
Fortgeschritten
Papst befindet sich auf einem aufstrebenden Ast
Standard

probier mal folgendes (ist nur eine Idee und ungetestet)
PHP-Code:
<?php
$array1 
= array('...' => '.....'); # usw
$array2 = array(':::' => '::::'); # usw

foreach ($array1 as $key => $value) {
  echo 
$key .' => '.$value;
  echo 
next($array2);
  echo 
'
'
;
}
?>
Papst ist offline  
Alt 31.10.2007, 12:57  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo und herzlich willkommen hier im Forum

http://de.php.net/array_merge
PHP-Code:
<?php
$arX 
= array(1,2,3,5,67,8);
$arY = array(3983,3635,363,63,63,643622);
$arZ = array(56,36,326,326,3);
foreach (
array_merge($arX$arY$arZ) as $value) {
  echo 
$value"
"
;
}
?>
Beachte die Unterschiede zwischen assoziativen und numerisch-indexierten Arrays im Handbuch.

Andernfalls packste die Arrays eben in einen Array:
PHP-Code:
<?php
$arAll 
= array($arX$arY$arZ);
for (
$i 0$ix count($arAll); $i $ix; ++$i) {
  foreach (
$arAll[$i] as $key => $value) {
    echo 
"$key: $value
"
;
  }
}
?>
Zergling-new ist offline  
Alt 31.10.2007, 14:20  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

@Zergling
so hängst du die Arrays einfach aneinander. Er will sie aber parallel haben. Die folgende Funktion macht das flexibel für beliebig viele, auch ungleich lange Arrays unbekannter Länge. Es werden soviel Elemente wie im längsten Array ausgegeben, nicht vorhandene Zellen bleiben leer. Gibt die Daten in einer Tabelle aus:
PHP-Code:
.  
function 
list_parallel($arrays){
    if(!
is_array($arrays)){
        return 
false;
    }
    
    
$i 0;
    foreach(
$arrays as $array){  // Arrays in nummerische Arrays kopieren
        
$j 0;
        foreach(
$array as $ele){
            
$num_ar[$i][$j ++] = $ele;
        }
        
$i ++;
    }
    
    
$max 0;
    foreach(
$num_ar as $ar){      // maximale Länge ermitteln
        
$max max($maxcount($ar));
    }
    echo 
"<table border='1'>";
    for(
$i 0;$i $max;$i ++){    // Elemente ausgeben
        
echo "<tr>";
        for(
$j 0;$j count($num_ar);$j ++){
            
$ele = empty($num_ar[$j][$i]) ? '' $num_ar[$j][$i];
            echo 
"<td>$ele</td>";
        }
    }
    echo 
"</table>";
}
?> 
Aufgerufen wird das dann mit:
PHP-Code:
.
list_parallel(array($array_1$array_2, ...., $array_n)); 
Könnte man sicher noch vereinfachen, fällt mir aber nicht grad ein wie.
__________________
Gruss
L
lazydog ist offline  
Alt 31.10.2007, 20:18  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von lazydog
Aufgerufen wird das dann mit:
PHP-Code:
.
list_parallel(array($array_1$array_2, ...., $array_n)); 
Könnte man sicher noch vereinfachen, fällt mir aber nicht grad ein wie.
http://php.net/func_get_args
Zergling-new ist offline  
Alt 01.11.2007, 16:53  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

PHP-Code:
<?

function array_run ()
  {
  
$aArrays func_get_args ();
  
  for (
$i 0$i<count ($aArrays);$i++)
    foreach (
$aArrays[$i] as $sKey => $mValue)
      {
      
$aResult[$sKey][] = $mValue;
      }
  return (
$aResult);
  }


function 
template ($aValues)
  {
  list (
$label $test) = $aValues;
  
?> 
  <row label="<?= $label ?>" test="<?= $test ?>" /><?
  
}


$keys = array ('label' 'test');
$array1 = array(1234);
$array2 = array(5678);

$aCombined array_run ($array1 $array2);
array_walk ($aCombined 'template');
Zum besseren Verständnis lass Dir mal $aCombined ausgeben.
Besser ist es, assoziative Arrayschlüssel oder eine andere Settingsstuktur zu benutzen. Damit kann man in php5 auch array_combine () benutzen.
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
foreach equivalent aber mit Datenmanipulation Matt PHP Tipps 2008 2 26.02.2008 16:47
Lambda-Funktion und array_map/_filter gegen foreach KingCrunch PHP Tipps 2007 5 29.04.2007 10:28
foreach verändert die werte des arrays das durchlaufen wird Crypi PHP Tipps 2007 5 10.01.2007 08:24
foreach mit zwei übergebenen Arrays ? [erledigt] horstenpeter PHP Tipps 2006 1 03.09.2006 16:47
[Erledigt] 2 Arrays miteinander vergleichen PHP Tipps 2007 3 17.12.2005 16:54
$_FILES mit foreach() PHP Tipps 2005-2 5 20.10.2005 10:27
wird der array überschrieben? foreach problem c-bass PHP Tipps 2005-2 7 15.08.2005 13:19
Werte von mehreren Arrays in Datenbank schreiben! PHP Tipps 2005 10 10.04.2005 16:43
foreach: Übergabe by reference Stümper PHP Tipps 2005 2 15.02.2005 15:35
foreach und 2D arrays PHP Tipps 2004-2 2 29.12.2004 20:40
Erkennung von Arrays in Strings PHP-Fortgeschrittene 15 07.12.2004 13:00
for / foreach problem PHP-Fortgeschrittene 4 19.11.2004 16:58
Drei verschiedene Arrays in die Datenbank? Paulo PHP Tipps 2004-2 21 18.11.2004 15:54
Werte eines Arrays in eine MySQL schreiben PHP Tipps 2004 2 28.06.2004 13:32
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
foreach 2 arrays, foreach mehrere arrays, php foreach 2 arrays, php foreach mehrere arrays, foreach mit 2 arrays, foreach zwei arrays, php foreach in foreach, foreach mit mehreren arrays, foreach zwei array, php foreach zwei arrays, mehrere arrays in foreach, mehrere foreach, foreach mehrere, foreach php 2 arrays, foreach two arrays, mehrere arrays foreach, foreach mehrere werte, foreach in foreach php, 2 arrays in foreach, foreach 2 array

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.