PHP 배열을 자바 스크립트로 변환
이와 같은 형식으로 PHP 배열을 변환하는 방법
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
)
아래 형식의 Javascript 배열에?
var cities = [
"Aberdeen",
"Ada",
"Adamsville",
"Addyston",
"Adelphi",
"Adena",
"Adrian",
"Akron",
"Albany"
];
보안 공지 : 다음은 더 이상 필요하지 않습니다.
PHP 5.2가 없다면 다음과 같이 사용할 수 있습니다 :
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), ';';
PHP와 JS에 제공 한 두 배열은 서로 관련이 없으며 두 언어로 배열이 어떻게 보이는지에 대한 예일 뿐이라고 가정하겠습니다. 분명히 당신은 문자와 숫자의 순서를 도시 이름으로 변환 할 수 없을 것입니다.
PHP는 PHP 배열을 Javascript 코드로 변환하는 기능을 제공합니다 json_encode()
. (기술적으로 JSON 형식입니다 .JSON은 JavaScript 객체 표기법을 나타냅니다)
다음과 같이 사용하십시오.
<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>
자세한 내용은 위에 링크 된 매뉴얼 페이지를 참조하십시오.
주 json_encode()
당신이 이전 버전을 사용하고 있으므로 경우에만 PHP 5.2에서 사용할 수있는 최대입니다, 당신은 사용해야합니다 기존의 PHP는 매뉴얼 페이지도 그것을 필요로 사람들에 의해 작성된 함수와 주석이 포함 -. (단, PHP 5.2 이전 버전을 사용하는 경우 최대한 빨리 업그레이드해야합니다.)
멍청하고 간단한 :
var js_array = [<?php echo '"'.implode('","', $php_array).'"' ?>];
출력은 json_encode
자바 스크립트 리터럴 이므로 parseJSON을 호출 할 필요가 없습니다 . js 변수에 할당하십시오.
<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>
PHP의 json_encode
함수를 사용하여 PHP 배열을 자바 스크립트로 변환 할 수 있습니다
<?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>
Javascript에서 PHP 배열로 작업하는 가장 빠르고 쉬운 방법은 다음과 같습니다.
PHP :
$php_arr = array('a','b','c','d');
자바 스크립트 :
//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);?>');
너무 간단합니다 ...!
이 방법을 사용하십시오 :
<?php echo json_encode($your_array); ?>;
라 라벨 블레이드 {{}}에서 다음 방법을 사용하십시오.
{{ str_replace('"', '', json_encode($your_array)) }}
관련 및 관련되지 않은 어레이 작업.
당신도 이런 식으로 할 수 있습니다
<script>
<?php
$php_array = array('abc','def','ghi');
$code_array = json_encode($php_array);
?>
var array_code = <?php echo $code_array; ?>;
console.log(array_code);
</script>
PHP4 의 다차원 배열의 경우 Udo G가 게시 한 코드에 다음을 추가 할 수 있습니다.
function js_str($s) {
return '"'.addcslashes($s, "\0..\37\"\\").'"';
}
function js_array($array, $keys_array) {
foreach ($array as $key => $value) {
$new_keys_array = $keys_array;
$new_keys_array[] = $key;
if(is_array($value)) {
echo 'javascript_array';
foreach($new_keys_array as $key) {
echo '["'.$key.'"]';
}
echo ' = new Array();';
js_array($value, $new_keys_array);
} else {
echo 'javascript_array';
foreach($new_keys_array as $key) {
echo '["'.$key.'"]';
}
echo ' = '.js_str($value).";";
}
}
}
echo 'var javascript_array = new Array();';
js_array($php_array, array());
이것은 내 기능입니다. JavaScript는 PHP 아래에 있어야하며 그렇지 않으면 SESSION을 사용하십시오.
<?php
$phpArray=array(1,2,3,4,5,6);
?>
<div id="arrayCon" style="width:300px;"></div>
<script type="text/javascript">
var jsArray = new Array();
<?php
$numArray=count($phpArray);
for($i=0;$i<$numArray;$i++){
echo "jsArray[$i] = ". $phpArray[$i] . ";\n";
}
?>
$("#arrayCon").text(jsArray[1]);
</script>
마지막 행은 .... text (jsArray) 일 수 있습니다. "1,2,3,4,5,6"으로 표시됩니다
나는 가짜 PHP 배열을 사용한다
<?php
// instead to create your array like this
$php_array = ["The","quick","brown","fox","jumps","over","the","lazy","dog"];
// do it like this (a simple variable but with separator)
$php_fake_array = "The,quick,brown,fox,jumps,over,the,lazy,dog";
?>
<script type="text/javascript">
// use the same separator for the JS split() function
js_array = '<?php echo $php_fake_array; ?>'.split(',');
</script>
배열을 알 수없는 경우 (이미 만들어 짐)
<?php
$php_array = file('my_file.txt');
$php_fake_array = "";
// transform your array with concatenate like this
foreach ($php_array as $cell){
// since this array is unknown, use clever separator
$php_fake_array .= $cell.",,,,,";
}
?>
<script type="text/javascript">
// use the same separator for the JS split() function
js_array = '<?php echo $php_fake_array; ?>'.split(',,,,,');
</script>
더 안전한 방식으로 수행 할 수 있습니다.
PHP 배열에 특수 문자가 포함되어 있으면 PHP에서 rawurlencode ()를 사용하고 JS에서 decodeURIComponent ()를 사용하여 해당 문자를 이스케이프 처리해야합니다. 그리고 JSON을 기본 js로 구문 분석하십시오. 이 시도:
var data = JSON.parse(
decodeURIComponent(
"<?=rawurlencode(json_encode($data));?>"
)
);
console.log(data);
나는 같은 문제가 있었고 이것이 내가 한 일이다.
/*PHP FILE*/
<?php
$data = file_get_contents('http://yourrssdomain.com/rss');
$data = simplexml_load_string($data);
$articles = array();
foreach($data->channel->item as $item){
$articles[] = array(
'title' => (string)$item->title,
'description' => (string)$item ->description,
'link' => (string)$item ->link,
'guid' => (string)$item ->guid,
'pubdate' => (string)$item ->pubDate,
'category' => (string)$item ->category,
);
}
// IF YOU PRINT_R THE ARTICLES ARRAY YOU WILL GET THE SAME KIND OF ARRAY THAT YOU ARE GETTING SO I CREATE AN OUTPUT STING AND WITH A FOR LOOP I ADD SOME CHARACTERS TO SPLIT LATER WITH JAVASCRIPT
$output="";
for($i = 0; $i < sizeof($articles); $i++){
//# Items
//| Attributes
if($i != 0) $output.="#"; /// IF NOT THE FIRST
// IF NOT THE FIRST ITEM ADD '#' TO SEPARATE EACH ITEM AND THEN '|' TO SEPARATE EACH ATTRIBUTE OF THE ITEM
$output.=$articles[$i]['title']."|";
$output.=$articles[$i]['description']."|";
$output.=$articles[$i]['link']."|";
$output.=$articles[$i]['guid']."|";
$output.=$articles[$i]['pubdate']."|";
$output.=$articles[$i]['category'];
}
echo $output;
?>
/* php file */
/*AJAX COMUNICATION*/
$(document).ready(function(e) {
/*AJAX COMUNICATION*/
var prodlist= [];
var attrlist= [];
$.ajax({
type: "get",
url: "php/fromupnorthrss.php",
data: {feeding: "feedstest"},
}).done(function(data) {
prodlist= data.split('#');
for(var i = 0; i < prodlist.length; i++){
attrlist= prodlist[i].split('|');
alert(attrlist[0]); /// NOW I CAN REACH EACH ELEMENT HOW I WANT TO.
}
});
});
도움이 되길 바랍니다.
간단하게 유지하십시오.
var jsObject = JSON.parse('<?= addslashes(json_encode($phpArray)) ?>');
If you need a multidimensional PHP array to be printed directly into the html page source code, and in an indented human-readable Javascript Object Notation (aka JSON) fashion, use this nice function I found in http://php.net/manual/en/function.json-encode.php#102091 coded by somebody nicknamed "bohwaz".
<?php
function json_readable_encode($in, $indent = 0, $from_array = false)
{
$_myself = __FUNCTION__;
$_escape = function ($str)
{
return preg_replace("!([\b\t\n\r\f\"\\'])!", "\\\\\\1", $str);
};
$out = '';
foreach ($in as $key=>$value)
{
$out .= str_repeat("\t", $indent + 1);
$out .= "\"".$_escape((string)$key)."\": ";
if (is_object($value) || is_array($value))
{
$out .= "\n";
$out .= $_myself($value, $indent + 1);
}
elseif (is_bool($value))
{
$out .= $value ? 'true' : 'false';
}
elseif (is_null($value))
{
$out .= 'null';
}
elseif (is_string($value))
{
$out .= "\"" . $_escape($value) ."\"";
}
else
{
$out .= $value;
}
$out .= ",\n";
}
if (!empty($out))
{
$out = substr($out, 0, -2);
}
$out = str_repeat("\t", $indent) . "{\n" . $out;
$out .= "\n" . str_repeat("\t", $indent) . "}";
return $out;
}
?>
Below is a pretty simple trick to convert PHP array to JavaScript array:
$array = array("one","two","three");
JS below:
// Use PHP tags for json_encode()
var js_json = json_encode($array);
var js_json_string = JSON.stringify(js_json);
var js_json_array = JSON.parse(js_json_string);
alert(js_json_array.length);
It works like a charm.
Is very simple I use this way:
JAVASCRIPT:
var arrayJavascript = <?php echo json_encode($arrayPhp) ?>;
Convert PHP array to Javascript
Regards!
참고URL : https://stackoverflow.com/questions/5618925/convert-php-array-to-javascript
'development' 카테고리의 다른 글
날짜 문자열이 해당 형식의 유효한 날짜인지 올바르게 판별하십시오. (0) | 2020.05.26 |
---|---|
포트 80에서 Flask를 실행하려면 어떻게해야합니까? (0) | 2020.05.26 |
신속하게 for 루프를 역순으로 반복하는 방법은 무엇입니까? (0) | 2020.05.26 |
문자열에서 첫 번째 문자를 제거하는 가장 쉬운 방법은 무엇입니까? (0) | 2020.05.26 |
ConstraintLayout을 백분율 값으로 작동시키는 방법은 무엇입니까? (0) | 2020.05.26 |