配列を文字列にフォーマットしたいので、配列をログファイルに書きたいからです。書式は次のとおりです。配列(キー付き)またはJSONからPHPへの文字列?
key=value; key1=value1; ...
また、キーまたはJSONオブジェクトを持つ配列でも機能するはずです。そこ
配列を文字列にフォーマットしたいので、配列をログファイルに書きたいからです。書式は次のとおりです。配列(キー付き)またはJSONからPHPへの文字列?
key=value; key1=value1; ...
また、キーまたはJSONオブジェクトを持つ配列でも機能するはずです。そこ
function arrayToString($array){
$result="";
while($object = current($array)){
$result .= key($array) . "=";
if(is_array($object)) {
$result .= arrayToString($object);
} else {
$result .= $object;
}
$result .= "; ";
next($array);
}
return $result;
}
あなたはそのために)(http_build_queryを使用することができます
を行く:
$data = array("k1" => "v1","k2" => "v2","k3" => "v4");
$string = http_build_query($data,"", "; ", PHP_QUERY_RFC1738);
あなたが別の区切り文字が必要な場合は"; "
を変更します。 PHP_QUERY_RFC1738
は、+
をスペースとして使用します。これはデフォルトにする必要がありますが、PHP_QUERY_RFC3986
のように聞こえます。
あなたはそれはそれを置き換えたくない場合は、次の
$string = str_replace("+"," ", $string);
ありがとう!私はこれを試しましたが、URL形式に@ - >%40またはこれに似たものをエンコードしました –
私は ')(シリアライズ'いずれか検討するかは 'json'両方はかなり防弾ですが、あなたが必要と言う形式を生成しません。その正確なフォーマットがどれほど重要であるか。 serializeまたはjsonを使用すると、サブ配列とサブ配列、そしておそらくオブジェクトまたは2でスローされた複雑な配列を最初に遭遇する心配はありません。単純な関数呼び出しですべてが完了します。 JSON文字列は、出力をシリアライズするよりはるかに人間的に読みやすいです。 – RiggsFolly
ありがとう! @RiggsFolly –