2009-06-26 11 views
1

J'ai un site de téléchargement de fichiers, il a une option de téléchargement via urls, ce que j'essaye de faire est quand un utilisateur télécharge par url, je vérifie ma base de données si un fichier a été téléchargé url il affiche directement l'url de téléchargement au lieu de le télécharger à nouveau.Manipuler des tableaux dans php

Les données envoyées au manuscrit le téléchargement est sous forme de tableau comme:

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

et le tableau utilisé pour outputing les résultats est sous forme comme ceci:

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 
     ) 

) 

Maintenant, je veux est que si le lien est déjà téléchargé Je l'ajoute juste à la matrice de sortie mais le maintient dans un ordre (si le lien ajouté était 2ème dans le tableau le résultat de sortie devrait également montrer dans le 2ème)

Alors, quelle fonction devrait être utilisée pour supprimer les URL correspondantes du tableau d'entrée et une fonction pour l'ajouter dans le numéro de commande.

// modifié

Oui unset fera la chose, mais je veux maintenir l'ordre:

Par exemple le tableau MHS après ressemble à ceci:

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

mais le le tableau de sortie serait

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 
      ) 

    ) 

Répondre

1

Eh bien, vous pouvez l'ajouter au tableau de sortie en faisant quelque chose comme:

$OutArray[2] = $element; 

Où $ élément est un autre tableau avec l'identifiant, le nom, la taille des éléments (etc ...).

En ce qui concerne la suppression du tableau:

unset($OutArray[2]); 

Vous pouvez lire Array (PHP manual).

+0

s'il vous plaît voir le poste édité – Shishant

+1

Sur la page de manuel j'ai lié à, recherche de "pepesantillan at gmail dot com" (C'est à partir de 19-Dec-2007 12:25). Cette fonction array_insert est ce que vous cherchez. –

+0

Merci ... cela a fait l'affaire – Shishant

0

Si vous avez un tableau indexé, vous pouvez supprimer une valeur en faisant:

unset ($array[2]); 

Si vous souhaitez ajouter un élément à un tableau, utilisez ce raccourci de array_push (vous n'avez pas besoin de spécifier un indice):

$array[] = "new object"; 

Toute la documentation est sur php.net/arrays

+0

s'il vous plaît voir le poste édité – Shishant

0

Pourquoi ne pas utiliser une instruction if et/ou file_exists() pour voir si le fichier est Là. Si vous avez déjà un tableau avec les valeurs, il ne sera simplement pas téléchargé à nouveau.

+0

s'il vous plaît lire la question correctement – Shishant

+1

La question est très floue imo = P – anddoutoi

Questions connexes