php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.04.2006, 12:13  
Gast
 
Beiträge: n/a
Standard Keys aus Array löschen die keinen Wert beinhalten?

Hi Phreaks,
ich habe ein HTML Formular aus welchem die Werte an das folgende
Multidimensionale Array übergeben werden, das Formular ist eine
Positionsliste einer Bestellung und hat deshalb eine vorgegebene anzahl
von Textfeldern die nicht immer ausgefüllt sind. Ich muss jetzt das Array
nach den schlüsseln suchen die keinen Wert beinhalten und infolgedessen
diese aus dem Array löschen.
PHP-Code:
$positionen = array();
for (
$i=0$i<30$i++) {
  
$tmp = array('pos'     => $_POST['pos'][$i],
               
'mng'           => $_POST['mng'][$i],
               
'ArtId'          => $_POST['ArtId'][$i],
               
'ArtTp'         => $_POST['ArtTp'][$i],
               
'EzPr'           => $_POST['EzPr'][$i],
               
'EzPrRab'      => $_POST['EzPrRab'][$i],
               
'ArtBem'       => $_POST['ArtBem'][$i]);
  if (isset(
$tmp['mng']) && $tmp['mng'] != "") {
    
array_push($positionen$tmp);
  }
 } 
Ich weiss das dies mit 'unset()' funktionieren sollte aber ich weiss nicht
wie ich das in meinem Array anwenden soll. Ich habe es bereits versucht
mit volgendem Beispiel doch das Array wird zwar durchgeschliefen aber
nicht gesäubert!
PHP-Code:
foreach($positionen as $key => $value) {
  if(
$value == "") {
    unset(
$positionen[$key][mng]);
  }
}
$npositionen array_values($positionen); 
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.04.2006, 12:24  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Warum überprüfst du das nicht schon beim Reinschreiben der POST-Werte in den Array bzw. wozu benötigst du überhaupt den $tmp Array? POST ist doch schon wunderbar aufgebaut.

Aber du könntest mit array_walk() die Elemente durchlaufen und leere Elemente (die kein Array sind) zerstören.
Zergling-new ist offline  
Alt 06.04.2006, 12:38  
Gast
 
Beiträge: n/a
Standard

Danke für die schnelle Antwort,
Die POST ausgabe beinhaltet noch die Kundendaten die ich nur so wie sie sind in die DB
schreibe deshalb habe ich die Positionen heraus Extrahiert um nur diese zu prüfen.
Aber ich werde es mal versuchen die Werte im Vorfeld zu prüfen!
Danke MfG Rix!
 
Alt 06.04.2006, 13:07  
Gast
 
Beiträge: n/a
Standard

Also ich denke das ich bei der Syntax etwas falsch mache und nicht den
richtigen Key anspreche! Kannst du mir Bitte ein kleines beispiel zeigen, den
am besten und schnellsten Lerne ich durch beispiele!
Danke für deine Mühe!
PHP-Code:
<?php
array_walk
($positionen) {
  if(
$positionen == "") {
    unset(
$positionen);
  }
}
?>
 
Alt 06.04.2006, 13:42  
Gast
 
Beiträge: n/a
Standard

Du möchtest bestimmt mal in der Doku nachlesen, wie array_walk funktioniert: http://de3.php.net/manual/de/function.array-walk.php Beispiele gibt's dort auch.

Gruß
phpfan
 
Alt 06.04.2006, 13:46  
Gast
 
Beiträge: n/a
Standard

Ok Danke für alles habs mit
PHP-Code:
<?php
for ($i=0$i<30$i++) {
    if (
$positions[$i][pos] ==! '') {
    print(
balbla)
?>
hinbekommen!
 
Alt 06.04.2006, 14:33  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

1. Es gibt für Arrays extra die foreach-Schleife
2. assoiative Indizes immer (!) in Anführungszeichen, wenn es keine Variable oder Konstante ist!

Übrigens: Optisch etwas komplizierter, aber auch wirkungsvoll
PHP-Code:
<?php
$array 
array_filter ($arraycreate_function '$val''return (!empty($val["pos"]))') );
?>
KingCrunch ist offline  
Alt 06.04.2006, 16:07  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi.

Setz mal deinen error_reporting-Wert hoch. Eigentlich sollten die Felder doch garnicht übertragen
werden, wenn sie leer sind, folglich solltest du Warnungen bekommen, wenn du trotzdem drauf
zugreifst.

Mein Vorschlag:

Das Formular so aufbauen, dass du ein 3-Dimensionales Array bekommst, dessen erster Index für alle
Werte dieser Liste konstant ist, dessen zweiter Index von 1 bis 30 durchnummeriert ist und dessen
dritter Index das Attribut/Feld in der Zeile angibt (name="positionen[1][ArtID]").

Dann einfach rauskopieren:
PHP-Code:
<?php
if (!empty($_POST['positionen']) and is_array($_POST['positionen']))
    
$aPositionen $_POST['positionen'];

// dann:

foreach ($aPositionen as $aPosition)
    echo 
"ArtID: "$aPosition['ArtID'], "
\n"
;
?>
Falls du einen fortlaufenden Index brauchst:
PHP-Code:
<?php
$aPositionen 
array_values($_POST['positionen']);
?>
Ansonsten kannst du die Validierung eben auch "vorziehen":
PHP-Code:
<?php
$aPositionen 
= array();
if (isset(
$_POST['positionen']) and is_array($_POST['positionen'])) {

    foreach (
$_POST['positionen'] as $aPosition)
        if (!empty(
$aPosition)) $aPositionen[] = $aPosition;
}
?>
Basti
Basti ist offline  
 


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
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
[Erledigt] Hat ein Array einen Wert? silver_surfer PHP Tipps 2008 6 22.06.2008 12:20
Array Schlüssel nehmen den gewünschten Wert nicht an lindner PHP Tipps 2006 3 19.10.2006 19:21
Array schlüssel über wert finden Dave Waterstone PHP-Fortgeschrittene 3 29.03.2006 17:54
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
array verarbeitung (schlag auf den hinterkopf) PHP Tipps 2007 9 16.11.2005 11:37
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Einem Array einen Wert hinzufügen PHP Tipps 2005-2 5 14.10.2005 14:50
array wert zählen PHP Tipps 2005-2 6 10.10.2005 16:06
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
[Erledigt] Wert aus einem Array löschen PHP Tipps 2004 1 29.08.2004 22:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php alle inhalte aus einem array entfernen die nicht einen wert beinhalten, array_walk php array erzeugen, php werte aus array entfernen, werte in multidimensionalem array löschen, array php key löschen der kein wert enthält, wert aus array löschen, php array leere keys löschen, wert aus post array entfernen, daten aus array löschen, php array leere elemente array_filter, leere elemente aus array entfernen php, php array entfernen key, foreach 1 array entfernen, php leere elemente aus array entfernen, key und value aus array löschen, leere daten aus multi array löschen, mehrdimensionales array kein wert php, erstes feld in array löschen php, nummeriertes array in php übergeben html formular, array leere elemente löschen

Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 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.