Rechercher 2 valeurs dans un tableau, retourner la ligne

zory -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je cherche a renvoyer la ligne complète d'un tableau a deux dimensions qui contiendrait deux valeurs.

Par exemple :

Idu idr idt vitesse temps
1 2 2 12 55
2 2 5 135 27
3 2 7 1 22

comment renvoyer la position de la ligne répondant aux critères idr =2 et idt =5 ?

Array search ne fonctionne que sur 1 dimenssion d'après cce que j'ai compris
Merci de votre aide

A voir également:

5 réponses

DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
Bonjour

Si tu ne veux afficher que le numéro de la ligne voilà comment il faut faire

SELECT Idu
FROM  ta_table
WHERE idr = 2
AND   idt = 5;
0
zory
 
Bonsoir,

non ne je cherche pas a faire une requête sql, je cherche à identifier la ligne qui match avec deux valeurs...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Un truc du genre devrait te convenir je pense :
https://stackoverflow.com/questions/8102221/php-multidimensional-array-searching-find-key-by-specific-value


class Stdlib_Array
{
    public static function multiSearch(array $array, array $pairs)
    {
        $found = array();
        foreach ($array as $aKey => $aVal) {
            $coincidences = 0;
            foreach ($pairs as $pKey => $pVal) {
                if (array_key_exists($pKey, $aVal) && $aVal[$pKey] == $pVal) {
                    $coincidences++;
                }
            }
            if ($coincidences == count($pairs)) {
                $found[$aKey] = $aVal;
            }
        }

        return $found;
    }    
}

// Example:

$data = array(
    array('foo' => 'test4', 'bar' => 'baz'),
    array('foo' => 'test',  'bar' => 'baz'),
    array('foo' => 'test1', 'bar' => 'baz3'),
    array('foo' => 'test',  'bar' => 'baz'),
    array('foo' => 'test',  'bar' => 'baz4'),
    array('foo' => 'test4', 'bar' => 'baz1'),
    array('foo' => 'test',  'bar' => 'baz1'),
    array('foo' => 'test3', 'bar' => 'baz2'),
    array('foo' => 'test',  'bar' => 'baz'),
    array('foo' => 'test',  'bar' => 'baz'),
    array('foo' => 'test4', 'bar' => 'baz1')
);

$result = Stdlib_Array::multiSearch($data, array('foo' => 'test4', 'bar' => 'baz1'));

var_dump($result);

0
zory
 
Ca me parrait pas mal mais j'ai une erreur étrange :
Warning: array_key_exists() expects parameter 2 to be array, string given


Le tableau que je transmets est le résultat d'une requête PDO
 $rowtotalstats = $stmttotalstats->fetch(PDO::FETCH_BOTH);

Vous avez une idée ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Fais donc un FETCH_ASSOC uniquement, ça devrait être mieux
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Mais bon .. pourquoi faire la recherche dans l'array .. si celui-ci provient d'une requête .. autant faire comme te l'a proposé DelNc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zory
 
Jordane45,
c'est pour organiser mes données, c'est en lien avec cette question auquelle tu m'as aidé :

https://forums.commentcamarche.net/forum/affich-34253754-aide-pour-structurer-requette-sql

Je n'arrive pas m'en sortir
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
....
As tu essayé de manipuler ton array de sorti pour le mettre dans la forme souhaitée ??? (comme indiqué ici : https://forums.commentcamarche.net/forum/affich-34253754-aide-pour-structurer-requette-sql#6 )
A l'aide d'une ou deux boucles imbriquées... ça ne devrait pas être trop compliqué ....

Quoi qu'il en soit .. je ne vois pas le rapport entre le fait de filtrer sur deux données d'un array et ta question qui concernait la "mise en forme" d'une requête....
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
j'ai ajouté une suggestion en réponse à l'autre question
https://forums.commentcamarche.net/forum/affich-34253754-aide-pour-structurer-requette-sql#7
0