PHP-Array in JavaScript umwandeln
Wie kann ich ein PHP-Array in ein Format wie dieses konvertieren
Array
(
[0] => 001-1234567
[1] => 1234567
[2] => 12345678
[3] => 12345678
[4] => 12345678
[5] => AP1W3242
[6] => AP7X1234
[7] => AS1234
[8] => MH9Z2324
[9] => MX1234
[10] => TN1A3242
[11] => ZZ1234
)
zu einem Javascript-Array im untenstehenden Format?
var cities = [
"Aberdeen",
"Ada",
"Adamsville",
"Addyston",
"Adelphi",
"Adena",
"Adrian",
"Akron",
"Albany"
];
Antwort #1
Ich gehe davon aus, dass die beiden Arrays, die Sie für PHP und JS gegeben haben, nicht miteinander in Zusammenhang stehen und nur Beispiele dafür sind, wie Arrays in den beiden Sprachen aussehen. Offensichtlich werden Sie diese Buchstaben- und Zahlenfolgen nicht in diese Städtenamen umwandeln können.
PHP bietet eine Funktion, um PHP-Arrays in Javascript-Code umzuwandeln: json_encode(). (technisch gesehen ist es das JSON-Format; JSON steht für JavaScript Object Notation)
Verwenden Sie es so:
<script type='text/javascript'>
<?php
$php_array = array('abc','def','ghi');
$js_array = json_encode($php_array);
echo "var javascript_array = ". $js_array . ";\n";
?>
</script>
Siehe auch die Handbuchseite, die ich oben verlinkt habe, für weitere Informationen.
Beachten Sie, dass json_encode() nur in PHP 5.2 und höher verfügbar ist. Wenn Sie also eine ältere Version verwenden, müssen Sie eine bestehende Lösung verwenden - die PHP-Handbuchseite enthält auch Kommentare mit Funktionen von Personen, die sie benötigt haben. (Das gesagt, wenn Sie etwas älter als PHP 5.2 verwenden, sollten Sie so schnell wie möglich ein Upgrade durchführen)
Antwort #2
Spudleys Antwort ist in Ordnung.
Sicherheitsmitteilung: Das Folgende sollte für Sie nicht mehr erforderlich sein
Wenn Sie kein PHP 5.2 haben, können Sie so etwas wie dies verwenden:
function js_str($s)
{
return '"' . addcslashes($s, "\0..\37\"\\") . '"';
}
function js_array($array)
{
$temp = array_map('js_str', $array);
return '[' . implode(',', $temp) . ']';
}
echo 'var cities = ', js_array($php_cities_array), ';';
Antwort #3
Dumm und einfach :
var js_array = [<?php echo '"'.implode('","', $php_array).'"' ?>];
Antwort #4
Sie müssen parseJSON nicht aufrufen, da die Ausgabe von json_encode ein JavaScript-Literal ist. Weisen Sie es einfach einer JS-Variablen zu.
<script type="text/javascript">
//Assign php generated json to JavaScript variable
var tempArray = <?php echo json_encode($php_array); ?>;
//You will be able to access the properties as
alert(tempArray[0].Key);
</script>
Antwort #5
Sie können PHP-Arrays mit der PHP-json_encode-Funktion in JavaScript umwandeln.
<?php $phpArray = array( 0 => 001-1234567, 1 => 1234567, 2 => 12345678, 3 => 12345678, 4 => 12345678, 5 => 'AP1W3242', 6 => 'AP7X1234', 7 => 'AS1234', 8 => 'MH9Z2324', 9 => 'MX1234', 10 => 'TN1A3242', 11 => 'ZZ1234' ) ?>
<script type="text/javascript">
var jArray= <?php echo json_encode($phpArray ); ?>;
for(var i=0;i<12;i++){
alert(jArray[i]);
}
</script>
Antwort #6
Es ist sehr einfach, ich benutze diese Methode:
JAVASCRIPT:
var arrayJavascript = <?php echo json_encode($arrayPhp) ?>;
PHP-Array in Javascript konvertieren
Gruß!
Antwort #7
Ich finde, der schnellste und einfachste Weg, mit einem PHP-Array in Javascript zu arbeiten, ist folgender:
PHP :
$php_arr = array('a','b','c','d');
Javascript:
//this gives me a JSON object
js_arr = '<?php echo JSON_encode($php_arr);?>';
//Depending on what I use it for I sometimes parse the json so I can work with a straight forward array:
js_arr = JSON.parse('<?php echo JSON_encode($php_arr);?>');
Antwort #8
Du kannst es auch auf diese Weise tun
<script>
<?php
$php_array = array('abc','def','ghi');
?>
var array_code = <?php echo json_encode($php_array); ?>;
console.log(array_code);
</script>
Antwort #9
so einfach ...!
verwenden Sie diese Methode:
<?php echo json_encode($your_array); ?>;
In Laravel Blade {{ }} verwenden Sie diese Methode:
{{ str_replace('"', '', json_encode($your_array)) }}
Arbeiten mit assoziativen und nicht assoziativen Arrays.
