php 用数组处理链表查询的方法
个人并不喜欢 mysql 链表进行查询 , 两个表还好, 三个表以上感觉sql语句巨长,过两天读起来还麻烦,然后研究了一种使用数组使用法
/** * 根据数组某个key的value获取数组的多个类似元素 * @param array $entities * @param string $column * @param unknown $column_value */ function get_entities_by_column($entities, $column, $column_value) { $list = array(); foreach ($entities as $entity) { if (isset($entity[$column]) && ($entity[$column] == $column_value)) { array_push($list, $entity); } } return $list; } /** * 根据数组某个key的value获取数组的这个元素 * @param array $entities * @param string $column * @param unknown $column_value */ function get_entity_by_column($entities, $column, $column_value) { $entities = get_entities_by_column($entities, $column, $column_value); if (empty($entities) || count($entities) <= 0) { return null; } return $entities[0]; }
get_entities_by_column()方法,返回的是一列数组 所传值 方别是 目标数组,数组索引,对应的值
get_entity_by_column()方法 , 返回一条数组 所传值 方别是 目标数组,数组索引,对应的值
用法:
$user_lists = M("user")->select(); foreach ($orderList as $key => $value) { $user_lists_res = get_entity_by_column($user_lists ,"user_id",$value['user_id']); $orderList[$key]['user_name'] = $user_lists_res['user_name'] }