/ / array_push che fornisce array separato da virgole - php - php, array-push

array_push che fornisce un array separato da virgole - php - php, array-push

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 № 1

Devi 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);