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

    Confronto tra array e creazione di nuovo array solo con i dati uguali

    Buongiorno e ciao a tutti

    devo eliminare da un array i dati che non mi servono prelevati da un altro array, molto probabilmente sbaglio la funzione:

    Codice PHP:

    $risutatiDifferenza 
    array_diff($arrayTemporaneo$arrayBadge);
    print_r($risutatiDifferenza); 

    Cosi' facendo pero', mi crea il nuovo array eliminando i dati che in realta' mi servirebbero, come prosso fare per verificare la corrispondenza e creare un nuovo array solo con i dati che mi servono ?

    Grazie in anticipo

    Ciao

  2. #2
    Definisci "i dati che non mi servono".

    Se in un array hai già i dati che ti servono, perchè devi torglierli da un'altro?

    Se intendi che il secondo array ha le chiavi da usare per estrarre i valori dal primo array:

    https://www.php.net/manual/en/functi...ersect-key.php

  3. #3
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Definisci "i dati che non mi servono".

    Se in un array hai già i dati che ti servono, perchè devi torglierli da un'altro?

    Se intendi che il secondo array ha le chiavi da usare per estrarre i valori dal primo array:

    https://www.php.net/manual/en/functi...ersect-key.php
    Ciao e grazie,

    intendo dire che ho un array e lo devo confrontare con altro ed estrarre (o creare un altro array) solamente quelli che sono presenti sia nel prmo array che ne secondo e che hanno lo stesso valore.

    Primo array:

    Codice PHP:

    Array (     [0] => 9132     [1] => 8994     [2] => 996     [3] => 994     [4] => 986     [5] => 9105     [6] => 997     [7] => 9099     [8] => 982     [9] => 8619 

    Secondo array:

    Codice PHP:

    Array (     [0] => 995     [1] => 995     [2] => 995     [3] => 995     [4] => 995     [5] => 995     [6] => 995     [7] => 995     [8] => 995     [9] => 995     [10] => 995     [11] => 995     [12] => 995     [13] => 995     [14] => 995     [15] => 995     [16] => 995     [17] => 995     [18] => 995     [19] => 995     [20] => 995     [21] => 995     [22] => 995     [23] => 995     [24] => 995     [25] => 995     [26] => 995     [27] => 995     [28] => 995     [29] => 995     [30] => 995     [31] => 995     [32] => 995     [33] => 995     [34] => 995     [35] => 995     [36] => 995     [37] => 995     [38] => 995     [39] => 995     [40] => 995     [41] => 995     [42] => 995     [43] => 995     [44] => 995     [45] => 995     [46] => 995     [47] => 995     [48] => 995     [49] => 995     [50] => 995     [51] => 995     [52] => 995     [53] => 9050     [54] => 9050     [55] => 9132     [56] => 9132     [57] => 9132     [58] => 9132     [59] => 9132     [60] => 9132     [61] => 9132     [62] => 9132     [63] => 9132     [64] => 9132     [65] => 9132     [66] => 9132     [67] => 9132     [68] => 9132     [69] => 9132     [70] => 9132     [71] => 9132     [72] => 9132     [73] => 9132     [74] => 9132     [75] => 9132     [76] => 9132     [77] => 9132     [78] => 9132     [79] => 9132     [80] => 9132     [81] => 9132     [82] => 9132     [83] => 9132     [84] => 9132     [85] => 9132     [86] => 9132     [87] => 9132     [88] => 9132     [89] => 9132     [90] => 9132     [91] => 994     [92] => 994     [93] => 994     [94] => 994     [95] => 994     [96] => 994     [97] => 994     [98] => 994     [99] => 994

    Mi dovrebbe estrarre, o creare un nuovo array solo con:


    Codice PHP:

    Array ([0] => 9132     [1] => 9132     [2] => 9132     [3] => 9132     [4] => 9132     [5] => 9132     [6] => 9132     [7] => 9132     [8] => 9132     [9] => 9132     [10] => 9132     [11] => 9132     [12] => 9132     [13] => 9132     [14] => 9132     [15] => 9132     [16] => 9132     [17] => 9132     [18] => 9132     [19] => 9132     [20] => 9132     [21] => 9132     [22] => 9132     [23] => 9132     [24] => 9132     [25] => 9132     [26] => 9132     [27] => 9132     [28] => 9132     [29] => 9132     [30] => 9132     [31] => 9132     [32] => 9132     [33] => 9132     [34] => 9132     [35] => 9132     [36]) 

    Ho provato l'esempio che mi hai fornito ma, logicamente mi sembra corretto, ma non mi estrae quello che mi serve.

    Grazie, ciao

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    C’è comunque qualcosa d’illogico.
    se nel primo array hai due volte 9132 e se ne hai 36 nel secondo ti ritroverai con 72 valori nel terzo.

    Con il primo devi crearne uno nuovo che conterrà come chiave i valori del primo e come valore, il numero delle loro occorrenze. Stessa cosa per il secondo array.

    Non testato.
    Codice PHP:
    $nuovo1 = array();
    foreach(
    $primo as $key => $value) {
      if (! isset(
    $nuovo1[$value])) {
         
    $nuovo1[$value] = 1;
      } else {
         
    $nuovo1[$value]++;
      }

    Codice PHP:
    $terzo = array();
    foreach(
    $nuovo1 as $key => $value) {
      if (isset(
    $nuovo2[$key])) {
         
    $totaleOccorrenze $value $nuovo2[$key];
         for(
    $i=1;$i<=$totaleOccorrenze;$i++) {
            
    $terzo[] = $key;
         }
      }

    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Aggiunta.
    Se vuoi ottimizzare, puoi fare in modo di riempire il terzo partendo dall’array con meno elementi.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Codice PHP:
    $search = [
        
    1234567,
    ];
     
    $content = [
        
    55667778910,
    ];
     
    $counts array_count_values($content);
     
    $results = [];
     
    foreach (
    $search as $value) {
        if (isset(
    $counts[$value])) {
            
    $results array_merge($resultsarray_fill(0$counts[$value], $value));
        }
    }
     
    print_r($results); 

  7. #7
    Perfetto, grazie 1000 !

    Ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.