我有一个多维数组,如:
Grandfather's name | Father's name | Son's name
JOHN | RAY | TERRENCE
JOHN | TIM | MICHAEL
JOHN | TIM | RYAN
BILL | SAM | HANK
BILL | SAM | WILL
BILL | LEO | DONALD
JACK | ROD | FITZGERALD
JACK | ABE | GEORGE
JACK | ALI | HARRY
我想把它变成嵌套的JSON对象,比如
JOHN
RAY
TERRENCE
TIM
MICHAEL
RYAN
等。
现在,我正在做一些循环检查,当祖父的名字改变时,然后当父亲的名字改变时。但这不是非常具有前瞻性,也不是可重复使用的。什么是更好(更可重用,更有效,更可读)的方式来做到这一点? (以可在PHP中实现的方式)
我意识到一些假设是有道理的。我正在寻找一种方法来实现这n个列,而不事先知道列数。但假设层次结构的排序顺序与列相同(因此每个后续列都是更深的集合)。
答案 0 :(得分:1)
循环遍历行,您需要一行代码来生成数组。
$rows = array(array('A', 'B', 'C'), array('A', 'B', 'D'), array('A', 'X', 'Y'));
$data = array();
foreach ($rows as $row) {
$data[$row[0]][$row[1]][$row[2]] = 1;
}
echo json_encode($data); // {"A":{"B":{"C":1,"D":1},"X":{"Y":1}}}