[请益] 请教php多层阵列比对并更新

楼主: NdhuOD (OD)   2014-04-07 16:04:28
各位大大好~
小弟不才,最近接到一个任务,就是写出二维以上之两阵列比对的class或function,
而两阵列的各有指定key=>value值,假如一个阵列是现有的阵列资料,
另一阵列来自json_decode产生出的阵列。
作者: bobju (枯藤老树昏鸦)   2014-04-07 16:51:00
递归? 什么意思? 这应该用个 foreach loop 就行了另外 更多层阵列的层数有没有规则可循? 若没有的话虽然也可以处理 就看程式技巧了 php处理这种东西正合适
楼主: NdhuOD (OD)   2014-04-07 17:30:00
是递回才对~上面笔误~bobju大大说的foreach loop我有用到,但又考虑要对应到key值,就比较难处理,想开发不仅只适用2~3层的阵列,希望能够是一体适用,多层都可以利用此class还请大大指点迷津,谢谢您~
作者: bobju (枯藤老树昏鸦)   2014-04-07 17:38:00
一般是可以用[reference]的机制来为树当中的节点做定位若能先定义出具体资料结构, 用它来解析会比较容易解说这篇文章当中的范例就只能是个 [key=>array] 的 node list,看不出你会如何用它来描述树状结构
楼主: NdhuOD (OD)   2014-04-07 17:56:00
小弟希望是能够使用树状结构,以每笔资料的PK作为根节点,但是不知道该如何使用tree的reference方式,小弟用笨方法,每进一层就用key=>value方式来取索引和值,但第二层之后就不知道如何找到reference的根节点,只知道目前的key=>value330、331、333那些表示的就是PK,也就是小弟想拿来做根节点请大大指导小弟>"<,感谢您~
作者: bobju (枯藤老树昏鸦)   2014-04-07 18:02:00
假设 node 用 $node 表示, &$node 就是其reference你可以在做 recursive traversal 时, 把每组 $key => $node的关系改为 $key => &$node_ref, 而 $node_ref 则复制到另一个全域范围的 array 里, 其内容即为$node的内容好像很复杂 @_@总之 一定能处理就对了 技巧也不限于此 或许你玩一玩就玩出心得来了
楼主: NdhuOD (OD)   2014-04-07 18:09:00
谢谢大大~让小弟思考一下,不懂的地方再请教您~谢谢>"<
作者: sunnyvisit (visit)   2014-04-07 18:12:00
其实也可以考虑先定义出一组需要的key 之后foreach去一组你要的格式资料是我的话,就从你给我的资料中拿出我要的资料,再组成我想要的样子。这样可以不用去判断是否有更新。

Links booklink

Contact Us: admin [ a t ] ucptt.com