2009-08-02 7 views
0

J'ai deux tableaux indexés mesures de $ [] et diffs $ [],Est-ce possible avec php

$ mesures [] est rempli de valeurs d'une base de données et les diffs $ [] Récupère les valeurs d'une fonction calcule la différence entre deux mesures. Lorsque j'ai une collection de mesures différentes dans $ mesures [] Je veux ajouter une valeur à un seul élément de tableau dans le tableau $ diffs [], puis le parcourir, puis l'élément tableau a été mis à jour. élément de tableau d'index correspondant dans le tableau $ measurements [] en déduire de là. Ce que j'essaie d'accomplir est de faire déduire une différence spécifique d'une mesure correspondante quand j'ai une collection de mesures. Est-ce possible en php et comment j'y arriverais?

Edit: pour le rendre plus descriptif (anglais est pas ma langue maternelle ni php)

$measurements Array ([0] => 1469 [1] => 1465 [2] => 739 [3] => 849) 

$diffs Array ([0] => 0 [1] => 0 [2] => 0 [3] => 0) 

Je voudrais mettre à jour l'index de tableau diffs $ [2] => 200 il devient

Array ([0] => 0 [1] => 0 [2] => 200 [3] => 0) 

puis soustraire l'indice de tableau diffs $ [2] de l'indice de tableau de mesures $ [2] dans ce cas 739-200

J'espère sincèrement que cela rend plus clair.

+0

Pouvez-vous s'il vous plaît modifier la question pour le rendre plus descriptif? Avec ce genre de question, je n'ai pas envie de vous aider – Graviton

Répondre

4

Je suis sûr que c'est possible ... il semble que vous ayez besoin de seulement quelques foreach es et de l'arithmétique de base.

Mais plus précis que cela, je ne peux pas vous aider. Je ne comprends pas votre description du problème.


Edit: Maintenant, avec plus d'informations sur la table, le code est tout ce complexe. Voilà comment je le ferais:

foreach ($measurements as $index => $measurement) { 
    $measurements[$index] -= $diffs[$index]; // subtract the negative difference from the measurement. 
    unset($diffs[$index]);   // clear the modifier after use. 
} 

Ce code fait passer dans chaque élément du tableau $measurements et soustrait un certain nombre de l'indice correspondant dans $diffs. Ce code n'exige pas que $diffs ait la taille correspondante avec $measurements, parce que PHP forcera une valeur d'index manquante à zéro.

0

Peut-être quelque chose comme ceci si votre tableau est 100. Syntaxe peut être éteinte et comme poster précédent pas sûr si j'ai compris votre problème.

for ($counter = 0; $counter <= 100; $counter += 1) { 
    $measurements[$counter] = $measurements[$counter] - $diff[$counter]; 
} 
+0

$ counter <= 100?! – iBiryukov

+0

Est-ce une question? – AaronLS

0

Si je vous comprends bien, vous voulez d'abord changer quelque chose dans le tableau diffs $, puis soustraire seulement l'élément mis à jour dans ce tableau de l'élément dans le tableau de mesures de $ où correspondent les indices.

Je suppose que vous devrez d'abord faire une copie des $ diffs, puis faire un changement, puis le comparer à l'original (comme avec foreach()) et mettre à jour les valeurs si quelque chose a changé à un index particulier.

'Scuse-moi si j'ai mal compris!

0

Pour répondre à vos questions: "oui" et "effort"