Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Array überschreiben [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Array überschreiben


 
owi
15-10-2008, 22:36 
 
Hallo,

eine Frage mal wieder von mir =)

Ich habe ein Array mit Werten zB.

Array[0] == 1
Array[1] == 2 <- möcht ich löschen
Array[2] == 3
Array[3] == 4

ich möchte jetzt zB. Array[1] löschen und das Array danach neu sortieren das es so aussieht:

Array[0] == 1
Array[1] == 3
Array[2] == 4

Mein Problem: ich bekomm das nicht hin ....

also als erstes wollte ich den Inhalt mit unset löschen...
$del = 1;
unset($Array['$del']); oder
unset($Array[$del]); oder
unset($Array["$del"]);
dann wollte ich den Inhalt überschreiben
Array[1] = '';
Fazit: nichts funktioniert der Arrayinhalt bleibt und bleibt und bleibt der selbe...

Grund warum ich den Inhalt löschen wollte ist das ich ne Funktion gefunden hatte die leere Felder löscht ( http://phptt.de/showschnipsel.php?kat=2&id=19 )

dann hätt ich das Array nurnoch neu sortieren müssen ... aber so weit komm ich ja nichtmal =(

 
unset
15-10-2008, 23:13 
 
Zeig doch mal ein konkretes Codebeispiel, in dem deine Ansätze nicht funktionieren.

 
XGremliN
15-10-2008, 23:44 
 
unset($Array[$del]);
$array_tmp = array();
foreach($Array as $k => $v) {
$array_tmp[] = $v;
}
$Array = $array_tmp;
unset($array_tmp);

 
owi
16-10-2008, 06:30 
 
Ich weiss nicht was ich ohne euch machen würde... Es funktioniert, danke! =)

Ich verstehe den Code zwar leider (noch) nicht ganz aber das wird hoffentlich auch noch

 
XGremliN
16-10-2008, 08:37 
 
ist doch ganze einfach:

unset($Array[$del]); //gewünschtes Element löschen
$array_tmp = array(); //Hilfsarray anlegen
foreach($Array as $k => $v) { //jedes Element des alten Arrays in das Hilfsarray schreiben
$array_tmp[] = $v;
}
$Array = $array_tmp; //altes Array = Hilfsarray
unset($array_tmp); //Hilfsarray löschen

 
CoReY
16-10-2008, 10:34 
 
Wenn du das Array neu indizieren möchtest, lässt sich dies nach div. Benchmarks[1 (http://benchmark.nophia.de/benchmarks-arrays-k-4-array-neu-nummerieren-b-30.html)][2 (http://benchmark.gripp.name/benchmark/arrays_neu_numerieren.html)] i. d. R. wie folgt am Effizientesten (und dazu äußerst kompakt) bewerkstelligen:
$Array = array_values($Array);
Informationen zur verwendeten Funktion findest du beispielsweise in der offiziellen Dokumentation (http://de.php.net/manual/de/function.array-values.php).

 
eintrachtemil
16-10-2008, 12:02 
 
Array[0] == 1 Array[1] == 2 <- möcht ich löschen Array[2] == 3 Array[3] == 4 ich möchte jetzt zB. Array[1] löschen und das Array danach neu sortieren das es so aussieht: Array[0] == 1 Array[1] == 3 Array[2] == 4

Hast du schon einmal das Manual (http://www.php.net/manual/de/function.array-splice.php) dazu angeschaut?
$test = array(1, 2, 3, 4);
array_splice($test, 1, 1);

 
owi
18-10-2008, 10:19 
 
mitlerweile versteh ich es auch, danke für die erklärung =)


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