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

    stdClass Object. Come elaboro gli array al suo interno?

    Ciao.
    Dopo aver "fatto i compiti" ed aver compreso appieno come confrontare due normali array da risultati dinamici, adesso mi trovo un nuovo muretto da scavalcare. Ed è il seguente:
    Codice PHP:
    Array ( [0] => stdClass Object ( [term_id] => 50 [cat_name] => Cellulari ) ) 
    I risultati che mi servono li tiro fuori così:
    Codice PHP:
    foreach($category AS $categories[0])
    echo 
    $categories[0]->cat_name.; 
    Ma non capisco come confrontarlo con un array semplice oppure da poter utilizzare ad esempio con una funzione come array_intersect.

    Si può fare?

  2. #2
    si può fare , ma dovresti prima convertire l'oggetto in array, ad esempio:

    Codice PHP:
    $category_array = new array();
    foreach(
    $category AS $key=>$value) {
       
    $category_array[$key] = $value;


  3. #3
    Originariamente inviato da maje
    si può fare , ma dovresti prima convertire l'oggetto in array, ad esempio:

    Codice PHP:
    $category_array = new array();
    foreach(
    $category AS $key=>$value) {
       
    $category_array[$key] = $value;

    Questo codice e' sbagliato. La prima riga e' un syntax error (un array si inizializza senza la keyword 'new').

    Per il resto e' sufficiente un semplice:
    Codice PHP:
    $category_array = (array)$category

  4. #4
    Originariamente inviato da k.b
    Questo codice e' sbagliato. La prima riga e' un syntax error (un array si inizializza senza la keyword 'new').
    è vero pardon, reminescenza da altri linguaggi!

    Per il resto e' sufficiente un semplice:
    Codice PHP:
    $category_array = (array)$category
    certo!

    nota bene: entrambi i metodi valgono però solo per array ad una dimensione

  5. #5
    Ciao e grazie a tutti e due per le risposte.
    Mi dite se è giusto come ho composto lo script?
    Codice PHP:
    $category get_the_category($post->ID);
    $category_array = (array)$category;
    foreach(
    $category_array AS $categories)
    echo 
    $categories
    Così com'è non mi da alcun errore però il risultato che ottengo è una stringa come questa che copio incollo:
    Codice PHP:
    stdClass Object ( [term_id] => 50 [cat_name] => Cellulari )
    stdClass Object ( [term_id] => 51 [cat_name] => Ricambi 
    Ed ovviamente in questo modo non riesco ad elaborarla perché non ho il classico risultato di un array e cioé:
    Codice PHP:
    Array ( [term_id] => 50 [cat_name] => Cellulari 
    Mi potete aiutare con un piccolo esempio da cui prendere spunto?
    Grazie ancora.

  6. #6
    prova così:

    Codice PHP:
    $category get_the_category($post->ID);
    $category_array = (array)$category;
    print_r($category_array); 

  7. #7
    Celerissimo, grazie
    Purtroppo in questo modo ottengo lo stesso risultato iniziale e cioé:
    Codice PHP:
    Array ( [0] => stdClass Object ( [term_id] => 50 [cat_name] => Cellulari ) ) 

  8. #8
    prova ad usare questa funzione per convertire l'object:

    Codice PHP:
    function objectToArray$object )
        {
            if( !
    is_object$object ) && !is_array$object ) )
            {
                return 
    $object;
            }
            if( 
    is_object$object ) )
            {
                
    $object get_object_vars$object );
            }
            return 
    array_map'objectToArray'$object );
        }

    $category get_the_category($post->ID);
    $category_array =objectToArray($category);
    print_r($category_array); 

  9. #9
    Perfetto, grande!
    Adesso ottengo il risultato in un array bidimensionale e penso che basti aggiungere la chiave [0] per avere l'array al suo interno ed utilizzarlo come array ad una sola dimensione, giusto?
    Codice PHP:
    print_r($category_array[0]); 

  10. #10
    si esatto! come avevo specificato, il cast fatto in questo modo:

    (array)$object

    non funziona per oggetti "complessi"

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.