Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Estrarre risultato da 2 array

    Ho 2 array strutturati in questo modo:

    Primo array
    codice:
    indice valore
    0     119 
    1     123
    2     129
    3     132
    devo confrontarlo con un altro array con piu' elementi e trovare se i 4 elementi corrispondono all'elemento vero=1 del secondo array

    Secondo array
    codice:
    indice [id] [vero]
    0     118     0
    1     119     1
    2     120     0
    3     121     0
    4     122     0
    5     123     1
    6     124     0
    7     125     0
    8     126     0
    9     127     0
    10   128     0
    11   129     1
    12   130     0
    13   131     0
    14   132     0
    15   133     1
    Nell'esempio sopra si nota che:
    119 è vero
    123 è vero
    129 è vero
    132 è falso

    Io dovrei memorizzare solo i valori falsi in altro array o DB
    Ho già cercato di fare dei foreach ma non ne vengo a capo.

    Ringrazio anticipatamente.
    ciao
    Gabriele

  2. #2
    Aggiungo il print_r() dei 2 array:
    codice:
    Array ( [0] => 119 [1] => 123 [2] => 129 [3] => 132 )
    codice:
    Array ( [0] => Array ( [id] => 118 [vera] => 0 ) [1] => Array ( [id] => 119 [vera] => 1 ) [2] => Array ( [id] => 120 [vera] => 0 ) [3] => Array ( [id] => 121 [vera] => 0 ) [4] => Array ( [id] => 122 [vera] => 0 ) [5] => Array ( [id] => 123 [vera] => 1 ) [6] => Array ( [id] => 124 [vera] => 0 ) [7] => Array ( [id] => 125 [vera] => 0 ) [8] => Array ( [id] => 126 [vera] => 0 ) [9] => Array ( [id] => 127 [vera] => 0 ) [10] => Array ( [id] => 128 [vera] => 0 ) [11] => Array ( [id] => 129 [vera] => 1 ) [12] => Array ( [id] => 130 [vera] => 0 ) [13] => Array ( [id] => 131 [vera] => 0 ) [14] => Array ( [id] => 132 [vera] => 1 ) [15] => Array ( [id] => 133 [vera] => 0 ) )
    In pratica, il primo lo ricavo da un forum, il secondo da una query su DB.

    Ringrazio ulteriormente.

  3. #3
    Ho trovato questa soluzione, spero sia la migliore:
    array1 = $risp_f
    array2 = $risp

    codice:
        foreach ($risp_f as $out2) {
          foreach ($risp as $out1) {
            if (($out2 == $out1[id]) and $out1[vera] == 0) {
              $errate .= $out2.",";
            }
          }
        }
    Nella variabile $errate mi ritrovo i numeri errati separati da virgola.
    ciao
    Gabriele

  4. #4
    Codice PHP:
    for($i 0$i <= count($risp_f)-1$i++) {
      foreach(
    $risp as $key => $value) {
        if(!
    in_array($value['vera'], $risp_f))
          
    $valori_da_prendere $risp_f[$i];
        else
          continue;
      }
    }

    rsort($valori_da_prendere); 
    così dovrebbe andare. Controlla solo in_array() perchè non sono sicuro dell'ordine con il quale passargli i 2 array

  5. #5
    Ti ringrazio per la risposta.

    La soluzione sopra indicata da me, l'ho applicata e funziona, volevo solo sapere se è un metodo corretto.
    ciao
    Gabriele

  6. #6

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.