アプリ版:「スタンプのみでお礼する」機能のリリースについて

改行コード変換メソッドで$dataには配列形式のデータが入ります。
public function v_line($val, $arr = false)
{
$line = '';
if(is_array($val)){
return array_map(array($this, 'v_line'), $val);
}

return str_replace(array("\r", "\n"), $line, $val);
}

//メソッド実行
$this->v_line($data);

この結果全ての改行コードが削除されます。これを特定のキーのみ削除ではなく"\n"に
統一させるように変換したいのですがどのようにすればできますでしょうか?

//改行コード削除しないキー配列
$arr = array('comment01', 'comment02');
//$arrのキーのみ改行コードを変換しその他は改行コード削除
$this->v_line($data, $arr);

A 回答 (1件)

function v_line($val, $arr, $line=""){


$ret = array();
if(!is_array($val)){
return str_replace(array("\r\n", "\r", "\n"), $line, $val);
}else{
foreach($val as $key=>$value){
if(in_array($key, $arr)){
$ret[$key] = v_line($value, $arr, "\n");
}else{
$ret[$key] = v_line($value, $arr);
}
}
return $ret;
}
}

こんな感じでしょうか。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます!思ったとおりの動作をさせることができました!
ずっと考えていたのですが思いつかなかったので本当に助かりました^^

お礼日時:2009/12/01 19:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!