Alternativa a foreach ?!

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Ciao vorrei sapere sei esiste un alternativa al foreach. Vorrei usare il ciclo for:
PHP:
$array = [ 'Red', 'White', 'Black' ];

for( $i=0; $i < count( $array ); $i++ )
   echo $array[$i].'<br />';

/* Il Problema e che se ce un array senza una chiave numerica come posso fare senza usare foreach o il while */

$array = [ 'Mela' => 'Rossa', 'Schermo' => 'Nero'  ecc... ];

while( list( $k, $v ) = each( $array ) )
   echo $array[$i].'<br />';
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, crei una varibile contatore e la incrementi all'interno del ciclo
PHP:
$contatore = 0;
foreach($array => $value) {
      echo $contatore . " " . $value ."<br/>";
      $contatore++;
}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ok, non avevo capito , prova cosi
PHP:
<?php

$array = array(
    "uno" => "valore 1",
    "due" => "valore 2",
    "tre" => "valore 3"
);

for ($i = 0; $i < count($array); $i++) {
    echo array_keys($array)[$i] . "<br/>";
}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Sorry, oggi sono fuso
PHP:
for ($i = 0; $i < count($array); $i++) {
    echo $array[array_keys($array)[$i]] . "<br/>";
}
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Sorry, oggi sono fuso
PHP:
for ($i = 0; $i < count($array); $i++) {
    echo $array[array_keys($array)[$i]] . "<br/>";
}

Ecco le alternative a foreach con ciclo for e while:

PHP:
$array = [ 'Mela' => 'Rosso', 'Zucchina' => 'Verde', 'Banana' => 'Giallo' ];
		
for ( $i=0; $i < count( $array ); $i++) { 
			
   $key = array_keys($array)[$i];
   $value = $array[array_keys($array)[$i]];
			
   echo $key.' '.$value.'<br />;
			
}

while( list( $key, $value ) = each( $array ) ){

   echo $key.' '.$value.'<br />';

}

Un altra cosa e meglio usare il foreach o le alternative con for e while in termini di prestazioni di php ?
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Ho effettuato dei test per verificare la velocita di esecuzione di ogni ciclo con microtime e il risultato e che se se abbiamo una chiave definita e molto piu veloce il ciclo while:
PHP:
$array = [ 'Mela' => 'Rossa', 'Banana' => 'Giallo' ];

while( list( $key, $value ) = each( $array ) )
   echo $key.' '.$value.'<br />';

altrimenti se abbiamo una chiave numerica e molto piu veloce il ciclo for:
PHP:
$array = [  'Rossa', 'Giallo' ];

for( $i=0; $i < count( $array ); $i++ )
   echo $array[$i].'<br />';
 
Discussioni simili
Autore Titolo Forum Risposte Data
J Alternativa ad Adsense, Vendere e Acquistare pubblicita' online 0
T Alternativa antenna wifi in reparto Reti LAN e Wireless 3
L [Javascript]Alternativa al position:sticky nel CSS Javascript 0
M [PHP] Alternativa a datagrid con PDO PHP 6
N Alternativa valida e gratuita allo keyword planner di Google Adwords ? SEO e Posizionamento 0
B Auto-increment multicolonna oppure qualsiasi alternativa MySQL 1
P Alternativa a iframe HTML e CSS 31
S [RISOLTO]alternativa al cookieless domain: cookieless directory. E' una buona idea? PHP 2
Frank10 Alternativa AdSense? Google AdSense 3
I Alternativa a Stampa Unione di Word? Windows e Software 0
A un'alternativa agli alert? Javascript 2
borgo italia leggere alternativa da un sito estrno PHP 6
L Alternativa ad Aruba: hosting condiviso economico su Linux o Win Hosting 2
S Alternativa a png per immagini senza sfondo HTML e CSS 2
A Alternativa al <meta http-equiv="refresh" content="5;url=code.php" > HTML e CSS 5
P alternativa a event.offsetX Javascript 0
PoLe Alternativa a Datagrid per paginazione Recordset ASP.NET 0
open-think alternativa ha php-nuke PHP 0
U alternativa allo SmartNavigation? ASP.NET 0
V Somma foreach PHP 2
Z problemi con foreach insert into PHP 10
P Passare i risultati di un foreach in un modal. Help! PHP 2
I Eecuzione di javascript in ciclo foreach php. PHP 7
P Array da foreach PHP 2
T foreach e fetchAll dove recupero solo l'ultimo record PHP 5
Alex_70 foreach explode query PHP 3
P Jquery event nel foreach php jQuery 3
S [PHP] Ciclo foreach su più array PHP 2
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
M [PHP] Errore in ciclo foreach PHP 1
S Unire due foreach simili PHP 5
M Problema con ciclo foreach per chiusura apertura div in base al numero di record in database PHP 1
L Estrarre e muovere un campo da un foreach PHP 0
C query dentro foreach PHP 1
JackIlPazzo Warning: Invalid argument supplied for foreach() PHP 1
otto9due Problema if elseif o foreach.. o non capisco cosa non funzioni.. PHP 4
otto9due Questione di array.. I risultato del foreach non è quello che voglio.. PHP 4
otto9due Problema inserimento ciclo foreach o while in variabile PHP 1
W foreach contenuto PHP 0
M Aiuto su come procedere con un ciclo foreach PHP 4
F Warning: Invalid argument supplied for foreach() PHP 3
felino Foreach annidati: soluzione? PHP 1
N Problema aggiornamento dati con foreach PHP 1
M Ricostruire array evitando il foreach PHP 0
N Problema FOREACH() PHP 3
Monital intabellare array bidimensionale, foreach impazziti PHP 13
M Problema Foreach && While PHP 4
M ciclo foreach che non funziona PHP 5
Emix [RISOLTO]Impostare focus su textbox dopo foreach jQuery 16

Discussioni simili