Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [MATRICI] estrapolare un'array che ha un certo valore...

    da un array a 2 dimensioni, se voglio la seconda righa mi basta fare

    $matrice[1]

    ma se invece dell'indice conosco solo un valore ('id'=4321 per esempio) come faccio?

    :master:
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  2. #2

  3. #3
    grazie ma questa cerca in 1 array la chiave di un valore che conosci già
    il mio problema più inverso, in 1 array cerco un array che ha un valori 'id' uguale a xxx

    $A=array(
    array('id'=>1432),
    array('id'=>5432),
    array('id'=>1542)
    )

    io voglio in $B l'array con 'id'==5432

    comunque dagli esempi che seguono la spiegazione della funzione array_search si vede che ciò non esiste e va costruita
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  4. #4
    aah pardòn avevo capito male...

    Dunque potresti fare innanzi tutto un foreach che ti passa in rassegna tutti i sotto-array contenuti nell'array principali; per ognuno di essi puoi usare la funzione array_key_exists() per controllare se la chiave "id" esiste, e in caso positivo controlli se il suo valore e' pari a xxxx. Puo' andare?

    Se invece la chiave ID c'e' sempre, e' ancora piu' facile...

  5. #5
    così?

    foreach ($A as $ArrayRow)
    if ($ArrayRow['id'] == "5432") {$B=$ArrayRow; break; }
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  6. #6
    Una roba del genere:

    codice:
    $da_cercare = 4444;
    
    $A = array(array('id' => 1111, 'key2' => "asd", 'key3' => "asdasdasdasd"), array
        ('id' => 2222, 'key2' => "asd", 'key3' => "asdasdasdasd"), array('id' => 3333,
        'key2' => "asd", 'key3' => "asdasdasdasd"), array('id' => 4444, 'key2' => "asd",
        'key3' => "asdasdasdasd"), array('id' => 5555, 'key2' => "asd", 'key3' =>
        "asdasdasdasd"), array('id' => 6666, 'key2' => "asd", 'key3' => "asdasdasdasd"));
    
    foreach ($A as $array)
    {
    
        if ($array['id'] == $da_cercare)
        {
            $B = $array;
            break;// solo se 'id' e' una chiave univoca!
        }
    
    }
    
    echo "<pre>";
    print_r($B);
    echo "</pre>";
    EDIT: ho sistemato il foreach, avevo lasciato il break fuori dall'if...

  7. #7




    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  8. #8
    comunque è assurdo che una cosa così non ci sia tra tutte quelle funzioni php disponibili ...così come mi sembra che non ci sia il modo di sapere qual è l'indice dell'elemento su cui siamo posizionati o sbaglio?
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  9. #9
    key() restituisce la chiave corrente di un array, mentre current() restituisce il valore corrente di un array, non so se ti possono essere utili.

  10. #10
    Codice PHP:
    $da_cercare 4444;
    $A = array(array('id' => 1111'key2' => "asd"'key3' => "asdasdasdasd"), array
        (
    'id' => 2222'key2' => "asd"'key3' => "asdasdasdasd"), array('id' => 3333,
        
    'key2' => "asd"'key3' => "asdasdasdasd"), array('id' => 4444'key2' => "asd",
        
    'key3' => "asdasdasdasd"), array('id' => 5555'key2' => "asd"'key3' =>
        
    "asdasdasdasd"), array('id' => 6666'key2' => "asd"'key3' => "asdasdasdasd"));



    function 
    seek($array,$key$needle){
            foreach(
    $array as $a){
                if(
    key_exists($key,$a)&&$a[$key]==$needle){
                    return 
    $a;
                }
            }
            return 
    null;
        } 


    print_r(seek($A,'id'$da_cercare)); 

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.