echo '/foo/bar/test/' | sed -e "s/\//|/"
预期:|foo|bar|test|
实际:|foo/bar/test/
有什么问题?
答案 0 :(得分:0)
正如Jose Ricardo Bustos M.和Patrick Trentin的评论所指出的那样,<?php
$a = [
'name' => 'a',
'content' => 'b',
'author_fullName' => 'c',
'author_email' => 'd',
'author_role_name' => 'e'
];
$finalArray =[];
array_walk($a, function(&$value, $key) use(&$finalArray) {
$indexes = explode('_',$key);
foreach ($indexes as $index){
$finalArray = &$finalArray[$index];
}
$finalArray = $value;
});
print_r($finalArray);
工作正常。 sed
命令仅替换第一个匹配,除非使用标志更改了行为。要替换所有匹配,请使用s///
。要替换s///g
匹配,例如第三个匹配,而不是第一个,使用n
。