~~~ /** * 获取数据的所有子孙数据的id值 */ function get_stemma($pids,Model &$model, $field='id'){ $collection = array(); //非空判断 if(empty($pids)){ return $collection; } if( is_array($pids) ){ $pids = trim(implode(',',$pids),','); } $result = $model->field($field)->where(array('pid'=>array('IN',(string)$pids)))->select(); $child_ids = array_column ((array)$result,'id'); while( !empty($child_ids) ){ $collection = array_merge($collection,$result); $result = $model->field($field)->where( array( 'pid'=>array( 'IN', $child_ids ) ) )->select(); $child_ids = array_column((array)$result,'id'); } return $collection; } ~~~