2009-06-26 8 views
1

Ich habe eine Datei Upload-Website, es hat eine Option zum Hochladen von URLs, was ich versuche zu tun ist, wann immer ein Benutzer über URL hochlädt, überprüfe ich meine Datenbank, wenn eine Datei vorhanden ist, die durch sie hochgeladen wurde URL zeigt die Download-URL direkt an, anstatt sie erneut hochzuladen.Manipulieren von Arrays in PHP

Die Daten werden in Array gesendet Form Skript Hochladen wie:

Array ( 
[0] => http://i41.tinypic.com/3342r93.jpg 
[1] => http://i41.tinypic.com/28cfub7.jpg 
[2] => http://i41.tinypic.com/12dsa32.jpg 
) 

und die Anordnung zur Ausgabe der Ergebnisse verwendet in Form ist wie folgt:

Array 
(
    [0] => Array 
     (
      [id] => 43 
      [name] => 3342r93.jpg 
      [size] => 362750 
      [descr] => 
      [password] => 
      [delete_id] => 75CE 
      [upload_id] => 75F45CAE1 
     ) 

    [1] => Array 
     (
      [id] => 44 
      [name] => 28cfub7.jpg 
      [size] => 105544 
      [descr] => 
      [password] => 
      [delete_id] => D392 
      [upload_id] => 6676FD881 
     ) 

    [2] => Array 
     (
      [id] => 45 
      [name] => 12dsa32.jpg 
      [size] => 49000 
      [descr] => 
      [password] => 
      [delete_id] => 54C9 
      [upload_id] => A58614C01 
     ) 

) 

Jetzt möchte ich, dass, wenn Der Link ist bereits hochgeladen. Ich füge ihn nur zum Ausgabearray hinzu, behalte ihn aber in einer Reihenfolge bei (wenn die hinzugefügte Verknüpfung 2. in Array war, sollte das Ausgabeergebnis auch in 2. anzeigen)

Also welche Funktion sollte verwendet werden, um die übereinstimmenden URLs aus dem Eingabearray zu entfernen und eine Funktion, um das Ausgabearray in der Bestellnummer hinzuzufügen.

// bearbeitet

Ja ungesetzt wird die Sache tun, aber ich möchte die Ordnung aufrecht zu erhalten:

Zum Beispiel, nachdem das Array unsetting sieht wie folgt aus:

Array ( 
    [0] => http://i41.tinypic.com/3342r93.jpg 
    // [1] was removed 
    [2] => http://i41.tinypic.com/12dsa32.jpg 
    ) 

aber die Ausgabe-Array wäre

Array 
    (
     [0] => Array 
      (
       [id] => 43 
       [name] => 3342r93.jpg 
       [size] => 362750 
       [descr] => 
       [password] => 
       [delete_id] => 75CE 
       [upload_id] => 75F45CAE1 
      ) 

// this will become [1], so how can i add another output[1] and shift other 
// items after it to [2], [3] and so on... 
     [1] => Array 
      (
       [id] => 45 
       [name] => 12dsa32.jpg 
       [size] => 49000 
       [descr] => 
       [password] => 
       [delete_id] => 54C9 
       [upload_id] => A58614C01 
      ) 

    ) 

Antwort

1

Nun, können Sie es mit dem Ausgang Array hinzufügen, indem Sie so etwas wie tun:

$OutArray[2] = $element; 

Wo $ Element ein anderes Array mit der ID ist, Name, Größe (etc ...) Elemente.

Was aus dem Array entfernt:

unset($OutArray[2]); 

Sie können Array (PHP manual) lesen möchten.

+0

siehe bitte den bearbeiteten Post – Shishant

+1

Auf der Handbuchseite, die ich verlinkte, suchen Sie nach "pepesantillan at gmail dot com" (Es ist vom 19-Dec-2007 12:25). Diese array_insert Funktion ist was du suchst. –

+0

Danke ... das hat den Trick gemacht – Shishant

0

Wenn Sie ein indiziertes Array haben, können Sie einen Wert, indem Sie entfernen:

unset ($array[2]); 

Wenn Sie ein Element in einem Array hinzufügen möchten, benutzen Sie diese Stenografie von array_push (Sie müssen nicht angeben, ein Index):

$array[] = "new object"; 

die gesamte Dokumentation ist auf php.net/arrays

+0

siehe bitte den bearbeiteten Beitrag – Shishant

0

Warum ein nicht verwenden, wenn Aussage und/oder file_exists() zu sehen, ob die Datei Dort. Wenn Sie bereits ein Array mit den Werten haben, wird es einfach nicht erneut hochgeladen.

+0

Bitte lesen Sie die Frage richtig – Shishant

+1

Die Frage ist sehr unscharf imo = P – anddoutoi