- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 php mysql 中有两个不同的 SELECT 查询。
我想将这两个结果合并到一个对象数组中。我不想使用 SQL UNION,因为在合并之前需要对结果进行一些处理。
有 php array_merge() 函数,但是当我尝试使用它时,出现以下错误:
array_merge(): Argument #1 is not an array
参数是 SQL 选择查询的结果。
$result1 = "";
$result2 = "";
$merged_results = "";
$stmt = $db->prepare("SELECT col1, col2 col3 from table1");
$stmt->execute();
$result1 = $stmt->get_result();
$stmt = $db->prepare("SELECT col1, col2 col3 from table2");
$stmt->execute();
$result2 = $stmt->get_result();
$merged_results = array_merge($result1,$result2);
我的目标是一个对象数组,其中每个对象代表一个来自 mysql select 的数据集,类似这样:
[{name:"Jonny",age:23},{name:"Bonny",age:25},{name:"Flower", age:21}]
那么请问如何将这些结果合并为对象数组的一个结果?
最佳答案
get_result() 是一个 mysqli 结果对象,不是你返回的数据。 http://php.net/manual/en/mysqli-stmt.get-result.php
你需要做这样的事情。
$merged_results = [];
$query = 'SELECT col1, col2 col3 from table1';
$stmt = $mysqli->stmt_init();
$stmt->prepare($query);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
$merged_results[] = $row;
}
$query = 'SELECT col1, col2 col3 from table2';
$stmt = $mysqli->stmt_init();
$stmt->prepare($query);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
$merged_results[] = $row;
}
var_dump($merged_results);
或者您可以使用 union 在一个查询中完成
$stmt = $db->prepare("SELECT col1, col2 col3 from table1 UNION SELECT col1, col2 col3 from table2");
$stmt->bind_param("sss",c1,c2,c3);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
$merged_results[] = $row;
}
var_dump($merged_results);
关于php - 如何使用 array_merge 在 php 中合并两个不同的 mysql 选择结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54653456/
使用 PHP。我有带有此键和值的数组 1: $array_1 = array( (more values) 'propub_cost_max' => 5, 'propub_cost_min' => 0
问题是,我没有得到数组代码的预期结果。 我试过执行 array_merge,但它所做的只是合并所有数组。 $medicine_order = $request['medicine_id'];
我有两个数组: $arr = ["ham", "beef", "testing1"]; $arr1 = ["baby", "chicken", "wax"]; 合并它们时我得到以下结果: var_du
我有两个数组: $arr = ["ham", "beef", "testing1"]; $arr1 = ["baby", "chicken", "wax"]; 合并它们时我得到以下结果: var_du
我想将多个数组合并在一起,同时优先使用第一个数组中的值并且仅具有唯一值。有没有比使用 array_merge()、array_unique() 和 + 运算符更快的方法? function foo(.
我得到了以下数组: $arr = array(6 => 'Somedata', 7 => 'Somedata1', 8 => 'Somedata2'); 问题是,当我使用 array_merge( (
我有一个双层数组。第一级有大约 10 个索引。这些包含每个到 275 个元素的数组,每个元素包含一个单词。 Array ( [0] => Array ( [0] => Suspendi
我的目标是合并 2 个不同的数组。 我有表“a”和“b”。表“a”中的数据更优先。 问题:如果“a”中的一个键包含一个空值,我想从表“b”中取出一个。 这是我的代码: "key1 from prio
PHP 中是否有一个数组函数以某种方式执行 array_merge,比较值,忽略键?我认为 array_unique(array_merge($a, $b)) 有效,但我相信一定有更好的方法来做到这一
假设我有一个关联数组,其键是字母字符串,如果我将一些东西合并到这个数组中,它将成功合并而无需重新索引 $arr1 = array('john'=>'JOHN', 'marry'=>'Marry');
执行 array_merge 时数组数组中键的顺序是否重要,即下面第二个数组中的键是否会覆盖第一个数组中的键: array1 = array('username' => 'abc', 'level'
如何使 array_merge() 覆盖两个数组中具有不同值但具有相同键索引的两个键? 例如,合并: [0] => '随便' 与 [0] => 'whatever', [1] => 'a', [2]
背景:Trevor 正在使用标准算法的 PHP 实现:获取一组主要的默认名称-值对,并更新这些名称-值对,但仅限于那些名称-值实际存在有效更新值的对。 问题:默认情况下,PHP array_merge
尝试合并 4 个数组,但某些时候有些数组可能为空。 $array_1 = array('something1', something2); $array_2 = array('something3',
我正在尝试将一个项目添加到关联数组的开头。我认为最好的方法是使用 array_merge,但我有一些奇怪的后果。我从 mysql 数据库中获取产品的 id 和 Name,它作为关联数组返回,如下所示(
这个问题在这里已经有了答案: What's the difference between array_merge and array + array? [duplicate] (9 个回答) 关闭6年
我敢肯定这对于精通 php 的人来说很容易,但我犯了一个错误,使我的大脑重载,所以现在我真的很困惑是否应该使用 array_combine、array_merge 或其他东西...我已经用谷歌搜索和阅
异常开始出现在所有 View 中,当我尝试运行composer update时,它总是以 {"error":{"type":"ErrorException","message":"array_merg
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
这个问题在这里已经有了答案: Merge multiple arrays from one array (7 个答案) 关闭 7 个月前。 我正在寻求一种更好的方法,而无需为 $justPrices
我是一名优秀的程序员,十分优秀!