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

    Array_filter : mi aiutate?

    Ho un array creato in questo modo:
    codice:
    $param[] = array('From' => "EUR" , 'To' => "USD");
    $param[] = array('From' => "EUR" , 'To' => "GBP");
    $param[] = array('From' => "USD" , 'To' => "EUR");
    $param[] = array('From' => "USD" , 'To' => "GBP");
    $param[] = array('From' => "GBP" , 'To' => "JPY");
    ... ... 
    ... ... (potrebbero essere una 30ina di righe)
    Che poi verrà elaborato in un ciclo che restituisce alcuni valori. Tale ciclo è lento perchè fa molte connessioni ad un sito esterno, per cui vorrei alleggerire il numero di righe dell'array.
    PRIMA di iniziare il tale ciclo vorrei quindi FILTRARE l'array tramite un valore (che ho già passato alla pagina e si chiama "$valuta").

    In pratica se $valuta=GBP vorrei che l'array fosse composto SOLO dalle righe i cui campi From e To hanno la parola GBP
    Le righe viste sopra, una volta filtrate, sarebbero quindi queste:
    codice:
    $param[] = array('From' => "EUR" , 'To' => "GBP");
    $param[] = array('From' => "USD" , 'To' => "GBP");
    $param[] = array('From' => "GBP" , 'To' => "JPY");
    Ho letto su php.net dell'esistenza della funzione Array_filter ma non riesco ad usarla...
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  2. #2
    Codice PHP:
    <?php
    $param
    [] = array('From' => "EUR" 'To' => "USD");
    $param[] = array('From' => "EUR" 'To' => "GBP");
    $param[] = array('From' => "USD" 'To' => "EUR");
    $param[] = array('From' => "USD" 'To' => "GBP");
    $param[] = array('From' => "GBP" 'To' => "JPY");

    $compare = array('pippo' => "GBP");
    foreach (
    $param as $key => $value){
        
    $result_array_tmp array_intersect($value$compare);
        if (
    sizeof($result_array_tmp)) {
            
    $result_array[] = $value;
        }
    }
    print_r($result_array);
    ?>
    Maccheronico, ma da il risultato aspettato

  3. #3
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Se proprio tu volessi usare array_filter :
    Codice PHP:
    <pre><?php 
    $param
    [] = array('From' => "EUR" 'To' => "USD");
    $param[] = array('From' => "EUR" 'To' => "GBP");
    $param[] = array('From' => "USD" 'To' => "EUR");
    $param[] = array('From' => "USD" 'To' => "GBP");
    $param[] = array('From' => "GBP" 'To' => "JPY");

    $valuta='USD';

    function 
    filtra_valuta($v){
        global 
    $valuta;// brrrrrr
        
    if($v['From']==$valuta || $v['To']==$valuta){
            return 
    $v;
        }
    }

    $filtrato array_filter($param,'filtra_valuta');
    print_r($filtrato);

    ?></pre>

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.