Javascript로 PHP 배열을 변환
PHPJavascript로 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"
];
해결법
-
==============================
1.Spudley의 대답은 괜찮습니다.
Spudley의 대답은 괜찮습니다.
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), ';';
-
==============================
2.PHP와 JS에 대해 제공 한 두 개의 배열은 서로 관련이 없다고 가정합니다. 배열은 두 언어로 표시되는 예제 일뿐입니다. 분명히 문자와 숫자의 연속을 도시 이름으로 변환 할 수는 없습니다.
PHP와 JS에 대해 제공 한 두 개의 배열은 서로 관련이 없다고 가정합니다. 배열은 두 언어로 표시되는 예제 일뿐입니다. 분명히 문자와 숫자의 연속을 도시 이름으로 변환 할 수는 없습니다.
PHP는 PHP 배열을 Javascript 코드 인 json_encode ()로 변환하는 함수를 제공합니다. (기술적으로는 JSON 형식이고, JSON은 JavaScript Object Notation의 약자 임)
다음과 같이 사용하십시오.
<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 이전 버전을 사용하는 경우 최대한 빨리 업그레이드해야 함)
-
==============================
3.멍청하고 단순한 :
멍청하고 단순한 :
var js_array = [<?php echo '"'.implode('","', $php_array).'"' ?>];
-
==============================
4.json_encode의 출력이 자바 스크립트 리터럴이므로 parseJSON을 호출 할 필요가 없습니다. 그냥 js 변수에 할당하십시오.
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>
-
==============================
5.당신은 PHP의 json_encode 함수를 사용하여 PHP 배열을 자바 스크립트로 변환 할 수 있습니다.
당신은 PHP의 json_encode 함수를 사용하여 PHP 배열을 자바 스크립트로 변환 할 수 있습니다.
<script type="text/javascript"> var jArray= <?php echo json_encode($phpArray ); ?>; for(var i=0;i<12;i++){ alert(jArray[i]); } </script>
-
==============================
6.Javascript에서 PHP 배열을 사용하여 작업하는 가장 빠르고 쉬운 방법은 다음과 같습니다.
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);?>');
-
==============================
7.너무 간단 ...!
너무 간단 ...!
이 방법을 사용하십시오 :
<?php echo json_encode($your_array); ?>;
laravel blade {{}}에서이 방법을 사용하십시오.
{{ str_replace('"', '', json_encode($your_array)) }}
연관된 어레이와 관련되지 않은 어레이에서 작동합니다.
-
==============================
8.너도 이런 식으로 할 수있어.
너도 이런 식으로 할 수있어.
<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>
-
==============================
9.이것은 내 기능이다. 자바 스크립트는 PHP를 사용해야하고 그렇지 않으면 SESSION을 사용해야합니다.
이것은 내 기능이다. 자바 스크립트는 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"으로 표시됩니다.
-
==============================
10.PHP4의 다차원 배열의 경우 Udo G가 게시 한 코드에 다음과 같은 추가 기능을 사용할 수 있습니다.
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());
-
==============================
11.그것은 더 안전한 방법으로 행해질 수 있습니다.
그것은 더 안전한 방법으로 행해질 수 있습니다.
PHP 배열에 특수 문자가 포함되어 있으면 PHP에서 rawurlencode ()를 사용하고 JS에서 decodeURIComponent ()를 사용하여 이스케이프해야합니다. JSON을 기본 js로 구문 분석합니다. 이 시도:
var data = JSON.parse( decodeURIComponent( "<?=rawurlencode(json_encode($data));?>" ) ); console.log(data);
-
==============================
12.나는 똑같은 문제를 겪었고 이것이 내가 어떻게했는지이다.
나는 똑같은 문제를 겪었고 이것이 내가 어떻게했는지이다.
/*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. } }); });
나는 그것이 도움이되기를 바랍니다.
-
==============================
13.가짜 PHP 배열을 사용합니다.
가짜 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>
-
==============================
14.다차원 PHP 배열을 html 페이지 소스 코드에 직접 인쇄하고 들여 쓰기가 가능한 사람이 읽을 수있는 Javascript Object Notation (일명 JSON) 형식으로 작성해야하는 경우 http://php.net/manual에있는이 멋진 함수를 사용하십시오 /en/function.json-encode.php#102091 "bohwaz"라는 별명을 가진 사람이 코딩했습니다.
다차원 PHP 배열을 html 페이지 소스 코드에 직접 인쇄하고 들여 쓰기가 가능한 사람이 읽을 수있는 Javascript Object Notation (일명 JSON) 형식으로 작성해야하는 경우 http://php.net/manual에있는이 멋진 함수를 사용하십시오 /en/function.json-encode.php#102091 "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; } ?>
-
==============================
15.간단하게 유지하십시오.
간단하게 유지하십시오.
var jsObject = JSON.parse('<?= addslashes(json_encode($phpArray)) ?>');
-
==============================
16.다음은 PHP 배열을 JavaScript 배열로 변환하는 아주 간단한 트릭입니다.
다음은 PHP 배열을 JavaScript 배열로 변환하는 아주 간단한 트릭입니다.
$array = array("one","two","three");
아래 JS :
// 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);
그것은 매력처럼 작동합니다.
from https://stackoverflow.com/questions/5618925/convert-php-array-to-javascript by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
open_basedir 제한이 적용됩니다. 파일 (/)이 (가) 허용 된 경로 내에 있지 않습니다. (0) | 2018.09.06 |
---|---|
PHP에서 다차원 배열을 단순한 것으로 "평평하게"만드는 방법은 무엇입니까? (0) | 2018.09.06 |
PHP로 혜성을 사용하고 있습니까? (0) | 2018.09.05 |
PHP를 사용하여 XML 파일을 동적으로 생성하는 방법은 무엇입니까? (0) | 2018.09.05 |
객체 필드별로 객체 배열 정렬 (0) | 2018.09.05 |