[三十六记] =>
Array ( [兵法] => 战略 ) )
[PHP] => Array (
[PHP技术] => Array (
[技术] => 战略 ) )
)
这样一个数组的子数组的没确定,比如数组也可能是
Array ( [诸葛亮] => 战略)
[PHP] => Array (
[PHP技术] => Array (
[技术] => 战略 ) )
)
怎么处理使数组值变成:
array(
array('诸葛亮','三十六记','兵法','战略')
array('PHP','PHP技术','技术','战略')
)
15 个解决方案
#1
和这位仁兄
http://topic.csdn.net/u/20110531/20/3d564b7c-77ad-4064-b8b0-d9602d871d0f.html?84930
问的问题差不多,我的方法稍微动一下就可以了,:-)。
http://topic.csdn.net/u/20110531/20/3d564b7c-77ad-4064-b8b0-d9602d871d0f.html?84930
问的问题差不多,我的方法稍微动一下就可以了,:-)。
#2
我看看。
#3
你能帮忙改动下吗?foolbirdflyfirst
#4
Array
(
[0] => -诸葛亮
[1] => -诸葛亮-三十六记
[2] => -诸葛亮-三十六记-兵法
[3] => -诸葛亮-三十六记-兵法-战略
[4] => -PHP
[5] => -PHP-PHP技术
[6] => -PHP-PHP技术-技术
[7] => -PHP-PHP技术-技术-战略
)
像这样的结果之前我以前输出过了。就是没办法得到成
array(
array('诸葛亮','三十六记','兵法','战略')
array('PHP','PHP技术','技术','战略')
)
这样的数组。
(
[0] => -诸葛亮
[1] => -诸葛亮-三十六记
[2] => -诸葛亮-三十六记-兵法
[3] => -诸葛亮-三十六记-兵法-战略
[4] => -PHP
[5] => -PHP-PHP技术
[6] => -PHP-PHP技术-技术
[7] => -PHP-PHP技术-技术-战略
)
像这样的结果之前我以前输出过了。就是没办法得到成
array(
array('诸葛亮','三十六记','兵法','战略')
array('PHP','PHP技术','技术','战略')
)
这样的数组。
#5
啊,这题和刚刚的差不多!
#6
差很多。帮忙解决了。100分马上解贴。
#7
晕 怎么都没声音了。汗死。
#8
我的设想是这样的,编写一个递归函数获得一个数组的子数组的值,知道这个数组没有数组为止,用is_array()函数来判断是一个数组的值(返回false),还是一个子数组(返回true)。如果这个判读返回false的话,就终止递归,如果true就继续递归。具体实现自己想想,也可以结合array_walk()这个函数来完成递归
#9
200分求解。如果问题解决了 请在以下地址再次回复下。
http://topic.csdn.net/u/20110531/21/c615b4e0-7bf7-40d3-a9f1-722a88439bfd.html
http://topic.csdn.net/u/20110531/21/c615b4e0-7bf7-40d3-a9f1-722a88439bfd.html
#10
array_walk()函数我也使用了,还是不行。额。
#11
还都没人用 实例 解决出来啊?????
实例!!!!!急求结果中。
实例!!!!!急求结果中。
#12
自己改改,优化优化吧。
$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 ));
#13
太感谢 foolbirdflyfirst。准备解贴。
#14
foolbirdflyfirst 再去这个地址回复下。
http://topic.csdn.net/u/20110531/20/3d564b7c-77ad-4064-b8b0-d9602d871d0f.html?84930
http://topic.csdn.net/u/20110531/20/3d564b7c-77ad-4064-b8b0-d9602d871d0f.html?84930
#15
还不错哈~
#1
和这位仁兄
http://topic.csdn.net/u/20110531/20/3d564b7c-77ad-4064-b8b0-d9602d871d0f.html?84930
问的问题差不多,我的方法稍微动一下就可以了,:-)。
http://topic.csdn.net/u/20110531/20/3d564b7c-77ad-4064-b8b0-d9602d871d0f.html?84930
问的问题差不多,我的方法稍微动一下就可以了,:-)。
#2
我看看。
#3
你能帮忙改动下吗?foolbirdflyfirst
#4
Array
(
[0] => -诸葛亮
[1] => -诸葛亮-三十六记
[2] => -诸葛亮-三十六记-兵法
[3] => -诸葛亮-三十六记-兵法-战略
[4] => -PHP
[5] => -PHP-PHP技术
[6] => -PHP-PHP技术-技术
[7] => -PHP-PHP技术-技术-战略
)
像这样的结果之前我以前输出过了。就是没办法得到成
array(
array('诸葛亮','三十六记','兵法','战略')
array('PHP','PHP技术','技术','战略')
)
这样的数组。
(
[0] => -诸葛亮
[1] => -诸葛亮-三十六记
[2] => -诸葛亮-三十六记-兵法
[3] => -诸葛亮-三十六记-兵法-战略
[4] => -PHP
[5] => -PHP-PHP技术
[6] => -PHP-PHP技术-技术
[7] => -PHP-PHP技术-技术-战略
)
像这样的结果之前我以前输出过了。就是没办法得到成
array(
array('诸葛亮','三十六记','兵法','战略')
array('PHP','PHP技术','技术','战略')
)
这样的数组。
#5
啊,这题和刚刚的差不多!
#6
差很多。帮忙解决了。100分马上解贴。
#7
晕 怎么都没声音了。汗死。
#8
我的设想是这样的,编写一个递归函数获得一个数组的子数组的值,知道这个数组没有数组为止,用is_array()函数来判断是一个数组的值(返回false),还是一个子数组(返回true)。如果这个判读返回false的话,就终止递归,如果true就继续递归。具体实现自己想想,也可以结合array_walk()这个函数来完成递归
#9
200分求解。如果问题解决了 请在以下地址再次回复下。
http://topic.csdn.net/u/20110531/21/c615b4e0-7bf7-40d3-a9f1-722a88439bfd.html
http://topic.csdn.net/u/20110531/21/c615b4e0-7bf7-40d3-a9f1-722a88439bfd.html
#10
array_walk()函数我也使用了,还是不行。额。
#11
还都没人用 实例 解决出来啊?????
实例!!!!!急求结果中。
实例!!!!!急求结果中。
#12
自己改改,优化优化吧。
$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 ));
#13
太感谢 foolbirdflyfirst。准备解贴。
#14
foolbirdflyfirst 再去这个地址回复下。
http://topic.csdn.net/u/20110531/20/3d564b7c-77ad-4064-b8b0-d9602d871d0f.html?84930
http://topic.csdn.net/u/20110531/20/3d564b7c-77ad-4064-b8b0-d9602d871d0f.html?84930
#15
还不错哈~