PHP 배열을 문자열로 변환하는 가장 좋은 방법은 무엇입니까? 유형 배열 인
변수 $type
가 있습니다.
$type = $_POST[type];
각 항목을 다음과 같이 구분하여 데이터베이스에 단일 문자열로 저장하고 싶습니다 |
.
스포츠 | 축제 | 기타
답변
단순히 implode를 사용하십시오
implode("|",$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);
답변
<?php
$string = implode('|',$types);
그러나 시크릿 모드가 맞습니다. 아마 그런 식으로 저장하고 싶지 않을 것입니다. 그것은 데이터베이스의 관계 적 힘을 완전히 낭비하는 것입니다.
직렬화가 잘못 된 경우 json_encode () 사용을 고려할 수도 있습니다.
답변
이것은 키와 가치를 저장합니다
function array2string($data){
$log_a = "";
foreach ($data as $key => $value) {
if(is_array($value)) $log_a .= "[".$key."] => (". array2string($value). ") \n";
else $log_a .= "[".$key."] => ".$value."\n";
}
return $log_a;
}
그것이 누군가를 돕기를 바랍니다.