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']
}