ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-09-2010, 01:25
fair2
 Registrierter Benutzer
Links : Onlinestatus : fair2 ist offline
Registriert seit: Sep 2006
Ort: Germany
Beiträge: 45
fair2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Multidimensionales Array auslesen

Hallo Leute,

folgendes Array

Code:
Array ( [anrede] => Array ( 
[BI2009] => Array ( [0] => Herr [1] => Herr [2] => Herr ) 
[O76010] => Array ( [0] => Herr [1] => Herr ) 
[06W011F] => Array ( [0] => Herr [1] => Herr [2] => Herr ) ) [titel] => Array ( 
[BI2009] => Array ( [0] => [1] => [2] => ) 
[O76010] => Array ( [0] => [1] => ) 
[06W011F] => Array ( [0] => [1] => [2] => ) ) [vrname] => Array ( 
[BI2009] => Array ( [0] => Max [1] => Franz [2] => Franz ) 
[O76010] => Array ( [0] => Franz [1] => Elfriede )
 [06W011F] => Array ( [0] => Max [1] => Otto [2] => Martin ) ) [nname] => Array ( 
[BI2009] => Array ( [0] => Mustermann [1] => Hansen [2] => Maier )
 [O76010] => Array ( [0] => Otto [1] => Hansen )
 [06W011F] => Array ( [0] => Hansen [1] => Hansen [2] => Maier ) ) [phone] => Array ( 
[BI2009] => Array ( [0] => [1] => [2] => ) 
[O76010] => Array ( [0] => [1] => )
 [06W011F] => Array ( [0] => [1] => [2] => ) )
Am ende muss folgendes Ausgegeben werden.

Beispiel:
PHP-Code:
$id BI2009
$anrede 
Herr
$titel 
"";
$vrname "Max";
$nname "Mustermann";
$phone ""
PHP-Code:
$i 0;
foreach(
$_POST["anrede"] as $anrede)
{
$new_array = array();
$i $i++;

$new_array array_shift($new_array,$anrede);

nun sollte ich alle daten anhand der ID bekommen also wieder mit einer neuen foreach ---
PHP-Code:
$i 0;
foreach(
$new_array as $ID)
{
$i $i++;

$return .= $ID;


aber das will nicht so recht .. kann auch sein das ich mich ein bisschen verlaufen habe

jeweils pro Datensatz und pro Array

Geändert von fair2 (01-09-2010 um 02:09 Uhr) Grund: da hab ich glatt was vergessen
Mit Zitat antworten
  #2 (permalink)  
Alt 01-09-2010, 01:35
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.550
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

soll ich den Thread sofort löschen oder willst du noch eine Chance haben, eine vernünftige Frage laut Forenregeln draus zu machen und deine bisherigen eigenen Ansätze zu zeigen. Du erwartest doch bitte nicht, dass dir hier jemand die Lösung auf dem Silbertablett serviert.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 01-09-2010, 02:03
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.550
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Danke für die Anpassung. Jetzt bin ich auch bereit, dir zu helfen. Eine Bitte noch: jeglichen Code in Code-Tags packen.

Es heißt $_POST, nicht $_POS. Wenn PHP dir das nicht selbst gesagt hat, Error-Reporting aufdrehen (ist auch eine Forenregel).

Nutze die Assoziativität von Arrays in PHP, um die zusammengehörenden Daten zu gruppieren. Das was ich damit meine, könnte dir evtl. der Blogeintrag zum Thema Gruppenwechsel näher illustrieren.

Wenn du das anwendest, könnte das Ergebnisarray dann so aussehen:
PHP-Code:
Array
(
    [
0] => Array
        (
            [
id] => BI2009
            
[index] => 0
            
[anrede] => Herr
            
[titel] => 
            [
vrname] => Max
            
[nname] => Mustermann
            
[phone] => 
        )
    [
1] => Array
        (
            [
id] => BI2009
            
[index] => 1
            
[anrede] => Herr
            
[titel] => 
            [
vrname] => Franz
            
[nname] => Hansen
            
[phone] => 
        )
    [
2] => Array
        (
            [
id] => BI2009
            
[index] => 2
            
[anrede] => Herr
            
[titel] => 
            [
vrname] => Franz
            
[nname] => Maier
            
[phone] => 
        )
    [
3] => Array
        (
            [
id] => O76010
            
[index] => 0
            
[anrede] => Herr
            
[titel] => 
            [
vrname] => Franz
            
[nname] => Otto
            
[phone] => 
        )
    [
4] => Array
        (
            [
id] => O76010
            
[index] => 1
            
[anrede] => Herr
            
[titel] => 
            [
vrname] => Elfriede
            
[nname] => Hansen
            
[phone] => 
        )
    [
5] => Array
        (
            [
id] => 06W011F
            
[index] => 0
            
[anrede] => Herr
            
[titel] => 
            [
vrname] => Max
            
[nname] => Hansen
            
[phone] => 
        )
    [
6] => Array
        (
            [
id] => 06W011F
            
[index] => 1
            
[anrede] => Herr
            
[titel] => 
            [
vrname] => Otto
            
[nname] => Hansen
            
[phone] => 
        )
    [
7] => Array
        (
            [
id] => 06W011F
            
[index] => 2
            
[anrede] => Herr
            
[titel] => 
            [
vrname] => Martin
            
[nname] => Maier
            
[phone] => 
        )

__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (01-09-2010 um 02:08 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 01-09-2010, 02:10
fair2
 Registrierter Benutzer
Links : Onlinestatus : fair2 ist offline
Registriert seit: Sep 2006
Ort: Germany
Beiträge: 45
fair2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

okay ich werde es mal versuchen,

scheint nicht zu gehen da die IDS und die anzahl der Felder immer verschieder sein können...

PHP-Code:
<?
if($_POST)
{
    
$array = array();
    foreach (
$_POST as $row) {
        
$array[$row["anrede"]][$row["rev_id"]][] = $row;
    }
}
?>

<form action="" method="post">
<input type="text" name="anrede[BI2009][]" />
<input type="text" name="anrede[BI2009][]" />
<input type="text" name="anrede[BI2009][]" />
<input type="text" name="anrede[BI2008][]" />
<input type="text" name="anrede[BI2008][]" />
<input type="text" name="anrede[BI2008][]" />
<input type="text" name="anrede[BI2008][]" />
</form>

Geändert von fair2 (01-09-2010 um 02:15 Uhr) Grund: noch was ..
Mit Zitat antworten
  #5 (permalink)  
Alt 01-09-2010, 02:23
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.550
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Den Code kenne ich

Du musst den schon auf dein Problem anpassen, das ist nur ein Beispiel und die Array-Indizes beziehen sich auf meine Historytabelle. Daher kann es nicht funktionieren.

Du brauchst 3 ineinander geschachtelte foreach-Schleifen (die ausführliche Notation mit Key und Value). In der innersten hast du alle Daten, die du brauchst und diese schreibst du dann nach der Gruppenwechselmethode in ein neues Array.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #6 (permalink)  
Alt 01-09-2010, 02:27
fair2
 Registrierter Benutzer
Links : Onlinestatus : fair2 ist offline
Registriert seit: Sep 2006
Ort: Germany
Beiträge: 45
fair2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
Array ( [BI2009] => Array ( [0] => Hallo [1] => Ich [2] => bin ) [BI2008] => Array ( [0] => der [1] => test [2] => ob [3] => geht )
soweit habe ich es

Code:
Array ( [anrede] => Array ( [BI2009] => Array ( [0] => Hallo [1] => Ich [2] => bin ) [BI2008] => Array ( [0] => der [1] => test [2] => ob [3] => geht ) ) [s] => safe )
Mit Zitat antworten
  #7 (permalink)  
Alt 01-09-2010, 02:33
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.550
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ach, egal, hier hast du es.

PHP-Code:
<?php
    $data 
= array(
        
"anrede" => array(
            
"BI2009" => array("Herr""Herr""Herr"),
            
"O76010" => array("Herr""Frau"), // hab mir mal erlaubt, aus der Elfriede eine Frau zu machen
            
"06W011F" => array("Herr""Herr""Herr")
        ), 
        
"titel" => array(
            
"BI2009" => array(""""""),
            
"O76010" => array(""""),
            
"06W011F" => array("""""")
        ), 
        
"vrname" => array(
            
"BI2009" => array("Max""Franz""Franz"),
            
"O76010" => array("Franz""Elfriede"),
            
"06W011F" => array("Max""Otto""Martin")
        ), 
        
"nname" => array(
            
"BI2009" => array("Mustermann""Hansen""Maier"),
            
"O76010" => array("Otto""Hansen"),
            
"06W011F" => array("Hansen""Hansen""Maier")
        ), 
        
"phone" => array(
            
"BI2009" => array(""""""),
            
"O76010" => array(""""),
            
"06W011F" => array("""""")
        )
    );
    
$result = array();
    foreach (
$data as $field => $idvalues) {
        foreach (
$idvalues as $id => $values) {
            foreach (
$values as $index => $value) {
                
// \x01 ist nur ein Trennzeichen, das mit sehr hoher Wahrscheinlichkeit
                // nicht selbst in $id oder $index vorkommt
                
$result[$id "\x01" $index]["id"] = $id;
                
$result[$id "\x01" $index]["index"] = $index;
                
$result[$id "\x01" $index][$field] = $value;
            }
        }
    }
    
$result array_values($result);
    
header("Content-Type: text/plain; charset=utf-8");
    
print_r($result);
?>
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (01-09-2010 um 02:35 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 01-09-2010, 02:40
fair2
 Registrierter Benutzer
Links : Onlinestatus : fair2 ist offline
Registriert seit: Sep 2006
Ort: Germany
Beiträge: 45
fair2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hammer .. das geht ja

ICH DANKE DIR VIELMALS ... da kann man ja mal früher schlafen gehen...
Mit Zitat antworten
  #9 (permalink)  
Alt 01-09-2010, 02:43
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.550
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Bitte versuch aber (meinetwegen auch erst nach dem Schlafen) zu verstehen, warum das ja geht und was es genau und warum macht.

Gute Nacht.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #10 (permalink)  
Alt 01-09-2010, 03:02
fair2
 Registrierter Benutzer
Links : Onlinestatus : fair2 ist offline
Registriert seit: Sep 2006
Ort: Germany
Beiträge: 45
fair2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

verdammt nun kommt das andere Problem

in dem Formular werden auch Daten welche nicht als [] definiert werden weitergegeben...

nun wollte ich mit array_merge die nötigen arrays in ein neues array schreiben aber er macht das nicht ...grr

$data = array();
$data = array_merge($data,$_POST["anrede"],
$_POST["titel"],$_POST["vrname"],$_POST["nname"],$_POST["phone"]);
Mit Zitat antworten
  #11 (permalink)  
Alt 01-09-2010, 03:09
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.550
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Versteh ich nicht. Was steht genau in $_POST?

Code in Code-Tags!
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #12 (permalink)  
Alt 01-09-2010, 03:13
fair2
 Registrierter Benutzer
Links : Onlinestatus : fair2 ist offline
Registriert seit: Sep 2006
Ort: Germany
Beiträge: 45
fair2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
Array
(
    [anrede] =&gt; Array
        (
            [BI3101] =&gt; Array
                (
                    [0] =&gt; Herr
                    [1] =&gt; Herr
                    [2] =&gt; Herr
                )

        )

    [titel] =&gt; Array
        (
            [BI3101] =&gt; Array
                (
                    [0] =&gt; 
                    [1] =&gt; 
                    [2] =&gt; 
                )

        )

    [vrname] =&gt; Array
        (
            [BI3101] =&gt; Array
                (
                    [0] =&gt; Franz
                    [1] =&gt; Heinz
                    [2] =&gt; Franz
                )

        )

    [nname] =&gt; Array
        (
            [BI3101] =&gt; Array
                (
                    [0] =&gt; Heinz
                    [1] =&gt; Holger
                    [2] =&gt; Holt
                )

        )

    [phone] =&gt; Array
        (
            [BI3101] =&gt; Array
                (
                    [0] =&gt; 01234
                    [1] =&gt; 01234
                    [2] =&gt; 01234
                )

        )

    [gutschein] =&gt; 
    [firma] =&gt; Max Muster
    [strasse] =&gt; Muster Straße 17
    [zusatz] =&gt; 
    [plz] =&gt; 12345
    [ort] =&gt; Musterstadt
    [abteilung] =&gt; 
    [telefon] =&gt; 02 1332656 44
    [anrede2] =&gt; Herr
    [titel2] =&gt; Array
    [fax] =&gt; 
    [nachname] =&gt; Muster
    [email] =&gt; info@mustermann.de
    [vorname] =&gt; Max
    [webseite] =&gt; 
    [bemerkungen] =&gt;         
    [agb] =&gt; AGB gelesen
    [book] =&gt; Seminare/TeilnehmerInnen anmelden
)
Array
(
    [BI3101] =&gt; Array
        (
            [0] =&gt; 01234
            [1] =&gt; 01234
            [2] =&gt; 01234
        )

)
PHP-Code:
$post_array = array();
    
$data = array();
    foreach(
$_POST as $post)
    {
        if(!
is_array($post))
        {
            
array_push($post_array,$post);
        }
        elseif(
is_array($post))
        {
            
array_merge($data,$post);
        }
    } 
irgendwie ist heute der Wurm drin

Geändert von fair2 (01-09-2010 um 03:36 Uhr) Grund: mal schöner
Mit Zitat antworten
  #13 (permalink)  
Alt 01-09-2010, 03:18
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.550
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Geht das auch in übersichtlich?

Lass dir im Browser den Quelltext anzeigen und kopier es von dort. Da geb ich mir Mühe und du knallst mir wieder so nen Mist vor die Füße, den kein Mensch lesen kann.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #14 (permalink)  
Alt 01-09-2010, 03:27
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.550
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Dann teil doch $_POST erstmal in zwei neue Arrays auf (foreach und is_array) und verarbeite die jeweils einzeln.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #15 (permalink)  
Alt 01-09-2010, 03:43
fair2
 Registrierter Benutzer
Links : Onlinestatus : fair2 ist offline
Registriert seit: Sep 2006
Ort: Germany
Beiträge: 45
fair2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$post_array = array();
$data = array();
foreach(
$_POST as $post => $key)
{
    if(!
is_array($key))
    {
            
array_merge($post_array,array($post=>$key));
    }
        elseif(
is_array($key))
    {
            
array_merge($data,array($post=>$key));
    }

Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
multidimensionales array sortieren jay-ar PHP Developer Forum 2 05-06-2009 00:24
DB & Multidimensionales Array nichtsooft PHP Developer Forum 44 08-03-2007 14:54
Multidimensionales Array in Eindimensionales Array konvertieren reallife PHP Developer Forum 0 30-10-2005 11:13
multidimensionales array global? gfx-freak PHP Developer Forum 4 14-02-2003 14:04
CHMOD // Multidimensionales Array Killerattacks PHP Developer Forum 3 08-05-2002 18:46

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

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