文字列を配列に変換したいとき[PHP]
カンマ区切りやパイプ区切りの文字列を配列に変換したいときがあります
今回はkeyとvalueにしたいものをパイプで区切り、個別にはカンマで区切る配列をつくりたいと思います
$sample_str = "apple|1, orange|2, banana|3";
$sample_arr = array();
// カンマとパイプを取り除く
$str_arr = array();
if($sample_str != ""){
foreach(explode(",",$sample_str) as $k=>$v){
$str_arr[] = explode("|",$v);
}
}
// 文字列から配列になる
foreach($str_arr as $k=>$v){
if(isset($str_arr[$k])){
$sample_arr[$v[0]] = $v[1];
}
}
出力結果は以下のとおりです
echo $sample_str;
// apple|1, orange|2, banana|3
print_r($sample_arr);
// Array ( [apple] => 1 [ orange] => 2 [ banana] => 3 )
explode()は文字列を指定の文字で区切り配列にします
非常に便利なのでよくつかう関数です