請問如何把$a
轉(zhuǎn)換成$b
?
$a = [
[
'id' => 1,
'pid' => 0,
],
[
'id' => 2,
'pid' => 0,
], [
'id' => 3,
'pid' => 1,
], [
'id' => 4,
'pid' => 3,
], [
'id' => 5,
'pid' => 4,
],
];
$b = [
[
'id' => 1,
'pid' => 0,
],
[
'id' => 2,
'pid' => 0,
], [
'id' => 3,
'pid' => 1,
'parents' => [
[
'id' => 1,
'pid' => 0,
],
],
], [
'id' => 4,
'pid' => 3,
'parents' => [
[
'id' => 3,
'pid' => 1,
],
[
'id' => 1,
'pid' => 0,
],
],
], [
'id' => 5,
'pid' => 4,
'parents' => [
[
'id' => 4,
'pid' => 3,
],
[
'id' => 3,
'pid' => 1,
],
[
'id' => 1,
'pid' => 0,
],
],
],
];
//組合多重數(shù)組
function catePartent($cate, $name = 'parents', $pid = 4)
{
$arr = array();
foreach($cate as $v){
if($pid == $v["id"]){
$v[$name]=catePartent($cate,$name,$v["pid"]);
$arr=$v;
}
}
return $arr;
}
//解多重數(shù)組
function getChilds($cate,$name = 'parents') {
//print_r($cate);
$arr = [];
$p=$cate;
unset($p[$name]);
if (!empty($cate[$name])) {
$arr[]= $p;
$arr= array_merge($arr,getChilds($cate[$name],$name));
}
if(empty($arr)){
$arr[] = $p;
}
return $arr;
}
function get_p($cate)
{
$arr=[];
foreach($cate as $v){
$tmp=catePartent($cate,$name='parents',$v["pid"]);
if( empty($tmp)){
$arr[] = $v;
}else{
$v['parents']=$tmp;
$arr[] = $v;
}
}
$res=[];
foreach($arr as $v){
if(isset($v["parents"])){
$v["parents"] = getChilds($v["parents"]);
}
$res[]=$v;
}
return $res;
}
$a = [
['id' => 1,'pid' => 0,],
['id' => 2,'pid' => 0,],
['id' => 3,'pid' => 1,],
['id' => 4,'pid' => 3,],
['id' => 5,'pid' => 4,],
];
var_dump(get_p($a));
$a = [
[
'id' => 1,
'pid' => 0,
],
[
'id' => 2,
'pid' => 0,
], [
'id' => 3,
'pid' => 1,
], [
'id' => 4,
'pid' => 3,
], [
'id' => 5,
'pid' => 4,
],
];
$b = array();
foreach ( $a as $key => $value) {
$b[$key] = treeList($a, $value);
}
/**
* 尋找item的家族樹
* @param $arr 數(shù)據(jù)源
* @param $item 要尋找的元素
* @return mixed
*/
function treeList($arr, $item){
//如果pid為0是頂級的直接返回
if($item['pid'] == 0){
return $item;
}
//根據(jù)pid尋找父級元素
$parent = array();
foreach ($arr as $value) {
if ($item['pid'] == $value['id']) {
$parent = $value;
}
}
$item['parents'] = treeList($arr, $parent);
return $item;
}
function getParents($a,$pid){
$parents=[];
foreach($a as $v){
if($v['id']==$pid){
$parents[]=$v;
if($v['pid']!=0){
foreach(getParents($a,$v['pid']) as $vv){
$parents[]=$vv;
}
}
}
}
return $parents;
}
function getDetail($a){
$b=[];
foreach ($a as $k => $v) {
$b[]=$v;
if($v['pid']!=0){
$b[$k]['parents']=getParents($a,$v['pid']);
}
}
return $b;
}
$b=getDetail($a);
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。