Rechercher 2 valeurs dans un tableau, retourner la ligne

Fermé
zory - 8 janv. 2017 à 20:32
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 8 janv. 2017 à 22:43
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 samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 1 999
8 janv. 2017 à 20:40
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
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
8 janv. 2017 à 21:00
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
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
8 janv. 2017 à 21:24
Fais donc un FETCH_ASSOC uniquement, ça devrait être mieux
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
8 janv. 2017 à 21:25
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
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
8 janv. 2017 à 22:05
....
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié par yg_be le 8/01/2017 à 22:43
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