在foreach中循环查询数据代码量比较少,但是性能比较低,好点的解决办法是将id收集起来,用in一次性查询,但是这引发了数据结构不是我们用PHP自带的函数可以合并的,今天测试了一下:
使用下面的字节写的函数可以解决
从数据库中取出来的数据总是或多或少不符合我们心目中的数据结构,类似于下面的俩个数组,要形成SQL中类似于left join后两个数组合并:
$test1 = Array(
0 => Array(
'id' => 9478137,
'create_time' => 1394760724
),
1 => Array(
'id' => 9478138,
'create_time' => 1394760725
),
2 => Array(
'id' => 9478138,
'create_time' => 1394760725
)
);
$test2 = array(
0 => array(
'id' => 9478137,
'message' => 'love you'
),
1 => array(
'id' => 9478138,
'message' => 'miss you'
)
);
如果要将这两个数组,类似于sql中的left join 关联起来我们用什么函数呢?额我没有找见就自己写了
刚开始的时候,用的是嵌套循环:效率低下
function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
foreach($array1 as $key1 => $value1 ) {
foreach ($array2 as $key2 => $value2) {
if($value1[$field1] == $value2[$field2]) {
$ret[$key1] = array_merge($value1, $value2);
}
}
}
return $ret;
}
改进后的办法,使用数组下标,使用两次循环:形成类似于left join的方式
$test1 = Array(
0 => Array(
'id' => 9478137,
'create_time' => 1394760724
),
1 => Array(
'id' => 9478138,
'create_time' => 1394760725
),
2 => Array(
'id' => 9478138,
'create_time' => 1394760725
)
);
$test2 = array(
0 => array(
'id' => 9478137,
'message' => 'love you'
),
1 => array(
'id' => 9478138,
'message' => 'miss you'
)
);
function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
//使用数组下标的办法
foreach ($array2 as $key => $value) {
$array3[$value[$field1]] = $value;
}
foreach ($array1 as $key => $value) {
$ret[] = array_merge($array3[$value[$field1]], $value);
}
return $ret;
}
$ret = _mergerArray($test1, $test2, 'id', 'id');
print_r($ret);exit;
打印出来结果如下:
Array
(
[0] => Array
(
[id] => 9478137
[message] => love you
[create_time] => 1394760724
)
[1] => Array
(
[id] => 9478138
[message] => miss you
[create_time] => 1394760725
)
[2] => Array
(
[id] => 9478138
[message] => miss you
[create_time] => 1394760725
)
)
相当于left join了吧?

php中关联数组和索引数组区别有:1、索引数组使用数字索引,而关联数组使用字符串键来标识和访问元素;2、索引数组中的元素顺序与被添加到数组中的顺序相同,而关联数组中的元素顺序不重;3、索引数组可以通过从0开始的数字索引访问数组元素,而关联数组可以使用字符串键来访问数组元素;4、索引数组的元素键是从数字0开始的数字索引,关联数组的元素键是字符串。

深入探讨PHP数组:多维数组、关联数组等全面解析PHP中数组是一种非常重要的数据结构,它可以存储多个数据项并通过索引进行访问。在PHP中,数组可以分为索引数组、关联数组和多维数组等不同类型,每种类型都有其独特的用途和特点。本文将深入探讨PHP数组的各种类型,包括如何声明、访问、遍历和操作数组,同时将会提供具体的代码示例以帮助读者更好地理解。一、索引数组索引数

php关联数组是一种特殊类型的数组,其中每个元素都是由一个键和一个相应的值组成的,与普通数组不同的是,关联数组的索引不是按照数字顺序排列的,而是使用字符串或整数等键来标识和访问值。关联数组在php中被广泛应用于各种编程任务,包括数据存储、表单处理、数据库查询等。

php关联数组求和的方法:1、使用foreach循环;2、使用array_sum()函数;3、使用array_reduce()函数。

使用PHP函数"mysqli_fetch_assoc"从结果集中获取一行作为关联数组在PHP中,与数据库进行交互是一项常见的任务。当我们执行SELECT查询并获取结果集时,我们通常需要将结果集中的数据存储到PHP数组中以便进一步处理。PHP提供了多个函数来处理结果集,其中一个常用的函数是"mysqli_fetch_assoc"。这个函数从结果集中获取一行

随着技术的不断发展,Web开发变得越来越流行,PHP作为其中一种广泛使用的Web开发语言,在处理数据的过程中,很多时候需要比较两个数组之间的差异,这时我们可以使用PHP中的array_diff_assoc函数来实现。array_diff_assoc函数用于比较两个关联数组之间的差异,根据键值对的不同返回一个新的数组,它返回一个数组,其中包含在所有参数数组中都

在PHP编程中,数组是一种非常常见的数据类型。PHP提供了许多内置的函数来处理数组,其中arsort()函数是一个非常有用的函数,可以用来对关联数组进行降序排列。本文将对arsort()函数进行详细介绍并给出一些实用的例子。一、什么是arsort()函数?arsort()函数是一个PHP内置的数组排序函数,用于按关联数组的值对数组进行降序排序。该函数不会改变

PHP关联数组的使用方法和示例在PHP中,数组是一种非常常用的数据类型,它用于存储多个值,并可以通过索引或键进行访问。在许多情况下,使用关联数组比使用索引数组更为方便,因为关联数组可以使用自定义的键来访问和操作数组中的值。关联数组是一种将键和值相关联的数组类型。每个键值对在数组中都有唯一的键,通过键可以访问和修改对应的值。下面是一些使用关联数组的基本方法和示


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境