PHP多维数组处理

chenping1984 2011-05-31 09:45:37
Array ( [诸葛亮] => Array (
[三十六记] =>
Array ( [兵法] => 战略 ) )
[PHP] => Array (
[PHP技术] => Array (
[技术] => 战略 ) )
)

这样一个数组的子数组的没确定,比如数组也可能是
Array ( [诸葛亮] => 战略)
[PHP] => Array (
[PHP技术] => Array (
[技术] => 战略 ) )
)

怎么处理使数组值变成:
array(
array('诸葛亮','三十六记','兵法','战略')
array('PHP','PHP技术','技术','战略')
)
...全文
87 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenping1984 2011-05-31
  • 打赏
  • 举报
回复
正解:
$tree = Array ('诸葛亮' => Array (
'三十六记' =>
Array ( '兵法' => '战略' ) ) ,
'PHP' => Array (
'PHP技术' => Array (
'技术' => '战略' ) )
) ;

function combine_keys( $arr,$root='' )
{
static $a = array();
foreach( $arr as $k=>$v)
{
$t[] = !empty($root) ? ($root."-".$k) : $k;
if( is_array($v))
{
combine_keys($v,end($t));
}
else{
$a[] = array_merge(explode('-',end($t)),array($v));
}
}
return $a;
}

echo "<pre/>";
print_r(combine_keys( $tree ));
www_7di_net 2011-05-31
  • 打赏
  • 举报
回复
函数名称:array_multi2single
函数原形:array array_multi2single(array)
实现功能:把一个多维数组的数值存放到一维数组中,不保存Key。

<?php

function array_multi2single($array)
{
static $result_array=array();
foreach($array as $value)
{
if(is_array($value))
{
array_multi2single($value);
}
else
$result_array[]=$value;
}
return $result_array;
}

20,358

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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