Array ( [诸葛亮] => Array ( 
  [三十六记] => 
  Array ( [兵法] => 战略 ) ) 
  [PHP] => Array ( 
  [PHP技术] => Array ( 
  [技术] => 战略 ) ) 
) 这样一个数组的子数组的没确定,比如数组也可能是
Array ( [诸葛亮] => 战略) 
  [PHP] => Array ( 
  [PHP技术] => Array ( 
  [技术] => 战略 ) ) 
) 怎么处理使数组值变成:
array(
  array('诸葛亮','三十六记','兵法','战略')
  array('PHP','PHP技术','技术','战略')
)

解决方案 »

  1.   

    函数名称:array_multi2single
    函数原形:array array_multi2single(array)
    实现功能:把一个多维数组的数值存放到一维数组中,不保存Key。<?phpfunction 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;
      

  2.   

    正解:
    $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 ));