Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    Filtrare un array multidimensionale

    ho un array tipo questo:

    Codice PHP:
    Array
    (
        [
    0] => Array
            (
                [
    Node] => Array
                    (
                        [
    id] => 2
                        
    [father_id] => 1
                    
    )

                [
    Item] => Array
                    (
                        [
    type_id] => 1
                        
    [itemvalue] => asdfqweifh qpohv quh
                    
    )

            )

        [
    1] => Array
            (
                [
    Node] => Array
                    (
                        [
    id] => 2
                        
    [father_id] => 1
                    
    )

                [
    Item] => Array
                    (
                        [
    type_id] => 2
                        
    [itemvalue] => bla bla bla
                    
    )

            )
        [
    2] => Array
            (
                [
    Node] => Array
                    (
                        [
    id] => 2
                        
    [father_id] => 1
                    
    )
                [
    Item] => Array
                    (
                        [
    type_id] => 3
                        
    [itemvalue] => 9
                   
    )
            )


    sto cercando il modo per filtrarlo in modo che mi venga restituita la chiave contenente [Item][type_id] = 3... in questo caso 2, ma potrebbero essercene più di uno

    qualcuno ha idea di come posso fare?

  2. #2

  3. #3
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    è il primo posto in cui ho guardato ma non ho trovato nulla che mi aiutasse con un array multidimensionale

  4. #4
    Sei davvero sicuro che http://www.php.net/array_filter non funzioni con un array multidimensione?
    Che prove hai fatto a sostegno di tale tesi?

  5. #5
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    ma che sei un ingegnere?


    ho solo chiesto un suggerimento



    se quello fa al caso mio, grazie

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    codice:
    function filter($array) {
      if($array['Item']['type_id'] == '2') {
         return true;
      } else {
         return false;
      }
    }
    
    print_r(array_keys(array_filter($array1, 'filter')));

  7. #7
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    ottimo così funziona! non avevo mai usato array_filter... credo sia una delle poche funzioni documentata in modo un po' "fumoso" sul sito di php infatti non ero proprio riuscito a capirla

    cmq ho tolto array_keys perchè tutto sommato non mi serviva, se ora riesco anche a passare alla funzione una variabile (il type_id) sono a cavallo


    grazie

  8. #8
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    alla fine ho utilizzato un altro sistema per filtrare quell'array, che invece ho bisogno di riadattare per questo:

    Codice PHP:
    function img_filter($array$language_id) {
        if(
    $array['Item']['language_id'] == $language_id) {
            return 
    true;
        }
    }
    $images_ita array_filter($images'img_filter'); 

    nella funzione vorrei aggiungere $language_id come parametro, però come posso richiamare quella funzione, con array_filter?

  9. #9
    Originariamente inviato da lnessuno
    alla fine ho utilizzato un altro sistema per filtrare quell'array, che invece ho bisogno di riadattare per questo:

    Codice PHP:
    function img_filter($array$language_id) {
        if(
    $array['Item']['language_id'] == $language_id) {
            return 
    true;
        }
    }
    $images_ita array_filter($images'img_filter'); 

    nella funzione vorrei aggiungere $language_id come parametro, però come posso richiamare quella funzione, con array_filter?
    hai poi risolto ? sono allo stesso punto..
    grazie

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.