Ho uno script php piuttosto grande che utilizza il ciclo foreach piuttosto spesso. Il modo in cui funziona ora è passare una serie di oggetti su ogni ciclo foreach, ma voglio modificare lo script per lavorare anche solo con un oggetto. Oserei davvero e non penso sia ragionevole controllare prima di ogni ciclo se si tratta di un array di oggetti o solo di un singolo oggetto e, a seconda della situazione, di scorrere l'array o semplicemente fare cose con il singolo oggetto. Qualche soluzione alternativa? Grazie in anticipoPHP foreach su array di oggetti E singolo oggetto?
risposta
$item = $obj;
// or
$item = array(...);
if(!is_array($item))
$item = array($item);
foreach($item as $individual)
{
//...
}
Schema estremamente comune in PHP, trovo lo – meagar
Suona come è necessario scrivere una funzione/Sarebbe questo per i propri scopi?
if(is_array($thingy)){
foreach($thingy as $thing){
function($thing);
}
}else{
function($thingy);
}
Questo era quello che stavo cercando di evitare, se avessi almeno un paio di dozzine di cicli foreach e aggiungendo. Mi dispiacerebbe avvolgere ogni contenuto del ciclo foreach in una funzione. Grazie comunque. – pHelics
È possibile passare una matrice con un singolo oggetto al suo interno. O utilizzare una funzione di costruzione/funzione polimorfica.
Passaggio di un array con un singolo oggetto è abbastanza evidente come farlo, ecco alcuni altri modi possibili per affrontarla:
function test($var)
{
if(is_a($var,"ClassName")) //Test to see if the passed variable is a member of the class and not an array and put it in an array if so
{
$var = array($var);
}
foreach($var as $v)
{
//Do stuff
}
}
function test($var)
{
if(is_array($var)) //Test if object is array or class, call different functions depending on which it is
{
call_user_func_array(array($this,'doArray'),$var);
}
elseif(is_a($var,"Classname"))
{
call_user_func_array(array($this,'doObject'),$var);
}
}
- 1. PHP Foreach Array e oggetti
- 2. php foreach su un array e l'assegnazione di questo array
- 3. PHP Foreach If Array Last
- 4. Come posso ottenere intellisense in PHP/Eclipse su oggetti personalizzati estratti da array nel ciclo foreach?
- 5. Casting PHP Variabile come tipo di oggetto nel ciclo foreach
- 6. di analisi JSON array con PHP foreach
- 7. Oggetto PHP o array
- 8. Array e foreach
- 9. Unione di più array su array singolo
- 10. convertire l'array php in un singolo oggetto JSON
- 11. foreach con array_chunk in php e con più array
- 12. Crea array associativo dal ciclo Foreach PHP
- 13. scorrere array di oggetti
- 14. forEach su array di undefined creato dal costruttore di array
- 15. PHP Array: pop un array di array singolo elemento in un array
- 16. php array_search singolo array con più hit
- 17. Eliminazione di un singolo oggetto da un array di oggetti in MongoDB
- 18. Combinare foreach e while in PHP
- 19. PHP Errore: Impossibile utilizzare oggetto di tipo stdClass come matrice (array e di oggetto questioni)
- 20. PHP foreach non looping
- 21. php come serializzare array di oggetti?
- 22. l'ordinamento personalizzato array di oggetti in PHP
- 23. PHP Foreach Empty
- 24. Memorizzazione di oggetti in un array con php
- 25. array PHP casting per oggetto
- 26. inserire il valore php in array di matrici utilizzando foreach
- 27. Domanda su foreach e delegati
- 28. Voglio aggiungere sub-array ad un singolo array in php
- 29. È sicuro chiamare foreach su array php vuoti in PHP 5.4?
- 30. PHP: array di oggetti - serialize vs json_encode - alternative?
Direi che se in più punti nello script non sei sicuro che tu stia lavorando su un singolo oggetto o una serie di oggetti hai un problema nel definire correttamente il tuo flusso di dati. – deceze