Sono abbastanza nuovo in PHP e provengo da un background Java. Quindi ecco qui:
Ho questo codice:
$selected = array();
foreach($this->getSelectedOptions() AS $array) {
array_push($selected, $array["value"]);
}
var_dump($selected);
getSelectedOptions () recupera una matrice di array contenenti stringhe.
Il risultato è
array
0 => string "abc, def" (length=31)
Mi aspettavo qualcosa del genere però:
Array
(
[0] => abc
[1] => def
)
Perché sta succedendo? Come posso fare in modo che il mio array assomigli a quest'ultimo (senza eseguire alcuna post-elaborazione con virgole ecc.)
Grazie!
risposte:
0 per risposta № 1Devi dividere i valori separati da virgola e ripetere il ciclo come di seguito:
$selected = array();
foreach($this->getSelectedOptions() AS $array) {
//$array now contains comma seperated values
//split and loop
$values = explode(",",$array["value"]);
foreach($values as $value) {
array_push($selected, $value);
}
}
1 per risposta № 2
Questo perché getSelectedOptions () dàuna stringa separata da virgola anziché una matrice. Non abbiamo la funzione, quindi non possiamo farci nulla. L'unica cosa che è possibile ora è la post-elaborazione. Ecco alcuni PHP che eseguono la post-elaborazione.
$selected = array();
foreach($this->getSelectedOptions() AS $array) {
$values = explode(", ", $array["value"]);
array_push($selected, $values);
}
var_dump($selected);