100分求一个关于数组格式化的问题

htdqy 2006-06-10 10:17:18
如下数组
$test = array (
0 => array ( 'manager' => 'ken' ),
1 => array ( 'manager' => 'hongtao' ),
2 => array ( 'warehouse' => 'cqh' ),
3 => array ( 'sales' => 'gao' ),
4 => array ( 'sales' => 'tt' ),
5 => array ( 'purchase' => 'purchase' ),
6 => array ( 'sales' => 'ok' ));

我希望格式化成这样的,不知道该如何实现,请指教:
$test = array (
'manager' => array('ken','hongtao'),
'sales' => array('gao','tt','ok'),
'purchase' => array('purchase'));
...全文
100 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gdj 2006-06-10
  • 打赏
  • 举报
回复
$return.="$cp);";
这里多了个分号,改为
$return.="$cp)";
Gdj 2006-06-10
  • 打赏
  • 举报
回复
function print_array($str,$cp=" ")
{
$return="array(\r\n";
foreach($str as $k=>$v){
$return.="$cp'$k'=>".(is_array($v)?print_array($v,$cp." "):"'$v'")."\r\n";
}
$return.="$cp);";
return $return;
}

$test = array (
0 => array ( 'manager' => 'ken' ),
1 => array ( 'manager' => 'hongtao' ),
2 => array ( 'warehouse' => 'cqh' ),
3 => array ( 'sales' => 'gao' ),
4 => array ( 'sales' => 'tt' ),
5 => array ( 'purchase' => 'purchase' ),
6 => array ( 'sales' => 'ok' ));


$tmp=array();
foreach($test as $v){
$tmp[key($v)][]=current($v);
}

file_put_contents($filename,"$test=".print_array($tmp));
htdqy 2006-06-10
  • 打赏
  • 举报
回复
能再帮下吗?如何将这个结果写入到文件? 即我想把结果按这个格式写入到一个临时文件中:

$test=array (
'manager'= >array('ken','hongtao'),
'warehouse'= >array('cqh'),
'sales'= >array('gao','tt','ok'),
'purchase'= >array('purchase'));
Gdj 2006-06-10
  • 打赏
  • 举报
回复
unset($test[2]);
$tmp=array();
foreach($test as $v){
$tmp[key($v)][]=current($v);
}
$test=$tmp;

这下没出入了吧-________-
Gdj 2006-06-10
  • 打赏
  • 举报
回复
输出结果

$test=array
(
'manager'=>array('ken','hongtao'),
'warehouse'=>array('cqh'),
'sales'=>array('gao','tt','ok'),
'purchase'=>array('purchase')
)

出入在哪里?
htdqy 2006-06-10
  • 打赏
  • 举报
回复
和我想要的结果有一点出入,继续征解
Gdj 2006-06-10
  • 打赏
  • 举报
回复
$tmp=array();
foreach($test as $v){
$tmp[key($v)][]=current($v);
}
$test=$tmp;
Gdj 2006-06-10
  • 打赏
  • 举报
回复
这个函数改为如下

function str_from_array($str,$cp=" ")
{
$return="";
foreach($str as $k=>$v){
$return.=($return?",\r\n$cp":"\r\n$cp")."'$k'=>".(is_array($v)?str_from_array($v,$cp." "):"'$v'");
}
return "array(".$return."\r\n$cp)";
}

21,881

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧