- Home
- Categorie
- Coding e Sistemistica
- Coding
- Nuovo Array da Array $Chiave,$Valore
-
Nuovo Array da Array $Chiave,$Valore
Ciao a tutti
Ho costruito un array del tipo coppie chiavi, valorePerò non riesco a usarlo tipo nei cicli for o if
Esempio:
while (list($chiave,$valore) = each($all)){
for ($contatore=0; $contatore < 12; $contatore++) {
$allnome=$chiave[$contatore];
echo '<div><a href="'.$urlsito.''.$allnome.'"><img src="'.$urlsito.''.$allnome.'/0.jpg" alt=""></a>'.$allnome.'</div>';
}
}Questo non funziona.
Quindi sarebbe più comodo Estrarre un nuovo arrai che contenga solo $chiave o $valore
Come si fa???Grazie
-
Sai che non ho capito nulla di quello che devi fare ???
Magari è questo:
foreach($all as $chiave => $valore)
{
echo '<div><a href="'.$urlsito.'/'.$valore.'"><img src="'.$urlsito.'/'.$valore.'/0.jpg" alt=""></a>'.$valore.'</div>';
}Ciao.
-
Ciao grazie della risposta
In pratica volevo visualizzare solo i primi 12
echo '<div><a href="'.$urlsito.'/'.$valore.'"><img src="'.$urlsito.'/'.$valore.'/0.jpg" alt=""></a>'.$valore.'</div>';E poi dopo mi servirebbe che vengano estratti casualmente.
Tu in pratica hai sostituito solo il while con il foreach, ma il while funzionava già senza il ciclo for
Grazie
-
Ma i primi 12 di cosa ????
-
Di $all in modo che visualizzi 12 di questi div:
echo '<div><a href="'.$urlsito.'/'.$valore.'"><img src="'.$urlsito.'/'.$valore.'/0.jpg" alt=""></a>'.$valore.'</div>';
-
Allora devi usare le funzioni current e next degli array di php:
In questo link c'e' un esempio che potrebbe aiutarti.
php. net/manual/en/function.reset.php
M.
-
Ok grazie
ma mi sembra un po' laborioso fare next e current x ognuno, non si può riassumere con un ciclo?L' ideale se sai come si fa sarebbe quello di creare 2 array dal primo.
Cioè io ho un array formato da $chiave,$valore .
E' possibile da questo creare un array con solo gli elementi $chiave e uno con solo gli elementi $valore?Sarebbe l' ideale perchè semplificherebbe il tutto
-
infatti devi mettere next dentro ad un ciclo
reset array
for (da 1 a 12)
next array
$a = current array
faccio quello che devo fare su $a
fine forcosì dovrebbe andare.
-
ok, e la distinzione tra $chiave e $valore dove la metto?
-
Ok ho provato in 2 modi, funzionano entrambi ma nel modo sbagliato:
foreach($all as $chiave => $valore) {
reset ($all);
for ($mul = 1; $mul <= 12; ++$mul){
next ($all);
$a = current ($all);
echo '<div><a href="'.$urlsito.''.$chiave.'"><img src="'.$urlsito.''.$chiave.'/0.jpg" alt=""></a>'.$chiave.'</div>';
}
}Cosi mi ripete ogni div 12 volte prima di passare a quello dopo.
reset ($all);
for ($mul = 1; $mul <= 12; ++$mul){
next ($all);
$a = current ($all);
foreach($all as $chiave => $valore) {
echo '<div><a href="'.$urlsito.''.$chiave.'"><img src="'.$urlsito.''.$chiave.'/0.jpg" alt=""></a>'.$chiave.'</div>';
}
}Così invece mi ripete l' intero elenco di div 12 volte.
Io invece vorrei che mi desse solo i primi 12 dell' elenco.
Dai che ci siamo quasi...
-
Ok ho trovato la risposta giusta andando un po' a tentativi
$chiave2 = array ($chiave[0]);
while (list($chiave,$valore) = each($all)){
array_push ($chiave2,"$chiave");
}Così creo il nuovo array con dentro solo le chiavi
Poi semplicemente
for ($mul = 1; $mul <= 12; ++$mul){
echo '<div><a href="'.$urlsito.''.$chiave2[$mul].'"><img src="'.$urlsito.''.$chiave2[$mul].'/0.jpg" alt=""></a>'.$chiave2[$mul].'</div>';
}Grazie lo stesso dell' aiuto