PHP 배열을 문자열로 변환하는 가장 좋은 방법은 무엇입니까? 유형 배열 인
변수 $type
가 있습니다.
$type = $_POST[type];
각 항목을 다음과 같이 구분하여 데이터베이스에 단일 문자열로 저장하고 싶습니다 |
.
스포츠 | 축제 | 기타
PHP 배열을 문자열로 변환하는 가장 좋은 방법은 무엇입니까? 유형 배열 인
변수 $type
가 있습니다.
$type = $_POST[type];
각 항목을 다음과 같이 구분하여 데이터베이스에 단일 문자열로 저장하고 싶습니다 |
.
스포츠 | 축제 | 기타
답변:
json_encode ()를 사용할 수 있습니다
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
나중에 json_decode () 를 사용 하여 DB에서 문자열을 디코딩하십시오. 다른 것은 쓸모가 없으며 JSON은 나중에 사용하기 위해 배열 관계를 그대로 유지합니다!
json_encode($data) //converts an array to JSON string
json_decode($jsonString) //converts json string to php array
왜 JSON : 대부분의 프로그래밍 언어와 함께 사용할 수 있으며 PHP의 serialize () 함수로 생성 된 문자열은 PHP에서만 읽을 수 있으며 데이터베이스가 작성된 응용 프로그램간에 데이터베이스를 공유하는 경우 데이터베이스에 이러한 내용을 저장하고 싶지 않습니다 다른 프로그래밍 언어
아니요, 데이터베이스에 단일 문자열로 저장하고 싶지 않습니다.
사용할 수는 serialize()
있지만 데이터 검색이 어려워지고 작업하기가 어려워지고 공간이 낭비됩니다.
다른 인코딩도 할 수 있지만 일반적으로 동일한 문제가 발생하기 쉽습니다.
DB가있는 모든 이유는 이처럼 사소한 작업을 수행 할 수 있기 때문입니다. 배열을 저장하기 위해 테이블이 필요하지 않으며 배열로 나타낼 수있는 테이블이 필요합니다.
예:
id | word
1 | Sports
2 | Festivals
3 | Classes
4 | Other
다음과 같은 테이블이 아닌 SQL을 사용하여 테이블에서 데이터를 선택하면됩니다.
id | word
1 | Sports|Festivals|Classes|Other
이것이 관계형 데이터베이스에서 스키마를 설계하는 방식이 아니며, 그 목적을 완전히 무너 뜨립니다.
''
대신 \'
?
가장 좋은 방법 중 하나 :
echo print_r($array, true);
json_decode
혼동을 일으키는 형식으로 엉망 이되므로 이것이 가장 좋습니다 .
<?php
$string = implode('|',$types);
그러나 시크릿 모드가 맞습니다. 아마 그런 식으로 저장하고 싶지 않을 것입니다. 그것은 데이터베이스의 관계 적 힘을 완전히 낭비하는 것입니다.
직렬화가 잘못 된 경우 json_encode () 사용을 고려할 수도 있습니다.
$data = array("asdcasdc","35353","asdca353sdc","sadcasdc","sadcasdc","asdcsdcsad");
$string_array = json_encode($data);
이제이 $ string_array 값을 데이터베이스에 삽입 할 수 있습니다
상점 연관 배열의 경우 다음을 사용할 수 있습니다 serialize
.
$arr = array(
'a' => 1,
'b' => 2,
'c' => 3
);
file_put_contents('stored-array.txt', serialize($arr));
그리고 다음을 사용하여로드하십시오 unserialize
.
$arr = unserialize(file_get_contents('stored-array.txt'));
print_r($arr);
그러나 .php
배열 이있는 creat 동적 파일 (예 : 구성 파일) var_export(..., true);
이 필요한 경우 다음과 같이 사용할 수 있습니다 .
파일로 저장 :
$arr = array(
'a' => 1,
'b' => 2,
'c' => 3
);
$str = preg_replace('#,(\s+|)\)#', '$1)', var_export($arr, true));
$str = '<?php' . PHP_EOL . 'return ' . $str . ';';
file_put_contents('config.php', $str);
배열 값을 가져옵니다.
$arr = include 'config.php';
print_r($arr);
PHP 문자열 함수를 사용할 수 있습니다 implode()
처럼,
<?php
$sports=$_POST['sports'];;
$festival=$_POST['festival'];
$food=$_POST['food'];
$array=[$sports,$festival,$food];
$string=implode('|',$array);
echo $string;
?>
예를 들어
$sports='football';
$festival='janmastami';
$food='biriyani';
그런 다음 출력은 다음과 같습니다.
football|janmastami|biriyani
PHP implode () 함수에 대한 자세한 내용은 w3schools를 참조하십시오
많은 방법이 있습니다.
이 두 가지 가장 좋은 방법은
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
//ouputs as
{"a":1,"b":2,"c":3,"d":4,"e":5}
$b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
$results = print_r($b, true); // $results now contains output from print_r