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! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 01-09-2010, 02: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 03:09 Uhr) Grund: da hab ich glatt was vergessen
Mit Zitat antworten
  #2 (permalink)  
Alt 01-09-2010, 02:35
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
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, 03:03
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
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 03:08 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 01-09-2010, 03: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 03:15 Uhr) Grund: noch was ..
Mit Zitat antworten
  #5 (permalink)  
Alt 01-09-2010, 03:23
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
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, 03: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, 03:33
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
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 03:35 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 01-09-2010, 03: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, 03:43
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
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, 04: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, 04:09
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
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, 04: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 04:36 Uhr) Grund: mal schöner
Mit Zitat antworten
  #13 (permalink)  
Alt 01-09-2010, 04:18
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
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, 04:27
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
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, 04: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 01:24
DB & Multidimensionales Array nichtsooft PHP Developer Forum 44 08-03-2007 15:54
Multidimensionales Array in Eindimensionales Array konvertieren reallife PHP Developer Forum 0 30-10-2005 12:13
multidimensionales array global? gfx-freak PHP Developer Forum 4 14-02-2003 15:04
CHMOD // Multidimensionales Array Killerattacks PHP Developer Forum 3 08-05-2002 19: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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:21 Uhr.