一道php筆試題的解法,遞迴地輸出組織架構下的每乙個人的所有下屬,
大家可以先根據題目自己動手試一下
<?php
$team=[
'張三'
=>
['劉備'
=>
['張飛'
=>
null
,'關羽'
=>
['馬良'
=>
null],
],'孟達'
=>
null],
'李四'
=>
['王五'
=>
['曹操'
=>
['荀攸'
=>
null
,'賈詡'
=>
null
,'郭嘉'
=>
null
,'程昱'
=>
null,]
,'張郃'
=>
null,]
],];
/** * 要求:根據組織結構輸出每個人的所有下屬
* 比如:根據示例中的組織結構可以構造出:
* 張三: 劉備,張飛,關羽,馬良,孟達
* 劉備:張飛、關羽、馬良
* 張飛:
* 關羽:馬良
* 馬良:
* 孟達:
*//*$items = [
'劉備' => [
'張飛' => null,
'關羽' => [
'馬良' => null,
'關平' => null,],]
];*/
$result=[
];function
getchild
($parentkey
,$values,&
$result
)foreach
($values
as$k
=>$v)
, v:
";if
(empty($v
))else}}
foreach
($team
as$k
=>$v)
//print_r($result);
foreach
($result
as$k
=>$v)
else
echo""
;}}
最終的輸出結果:
張飛:
劉備:張飛 關羽 馬良
馬良:關羽:馬良
張三:劉備 張飛 關羽 馬良 孟達
孟達:荀攸:
曹操:荀攸 賈詡 郭嘉 程昱
賈詡:郭嘉:
程昱:王五:曹操 荀攸 賈詡 郭嘉 程昱 張郃
張郃:李四:王五 曹操 荀攸 賈詡 郭嘉 程昱 張郃
可以看出遞迴方法 getchild 要處理層級關係,
該方法構建時,需要想清楚其中的傳參,如果只傳入 $team變數、很難構造出清晰的上下級關係,如果傳入的是當前的key和其子節點陣列,則層次關係更清晰一些,編碼也更容易一些。切記,分析問題,找到切入點 比立即動手寫更重要。
Ruby的輸出方法
print hello world.n 下劃線部分被稱為string物件或者字串物件,也可以直接稱這部分為字串。資料在程式中表現為物件。在ruby中,字串 數值 時間等各種資料都是物件。注 n是換行符,與大多數語言一樣。print是乙個方法。所謂方法就是物件的行為。print方法的作用就是輸出 裡的...
Oracle PL SQL 過程除錯的輸出方法
1.最基本的dbms output.put line 方法。隨便在什麼地方,只要是begin和end之間,就可以使用dbms output.put line output 然而這會有乙個問題,就是使用該函式一次最多隻可以顯示255個字元,否則緩衝區會溢位。此外,函式dbms output.enabl...
Oracle PL SQL過程除錯的輸出方法
1.最基本的dbms output.put line 方法。隨便在什麼地方,只要是begin和end之間,就可以使用dbms output.put line output 然而這會有乙個問題,就是使用該函式一次最多隻可以顯示255個字元,否則緩衝區會溢位。此外,函式dbms output.enabl...