php - MySQL基于PHP数组的最低值更新

标签 php mysql arrays

我有一个名为 $priority_array 的数组。

一些示例输出是:

Array
(
[0] => Array
    (
        [ID] => 6
        [ask_for_review] => 2
    )

[1] => Array
    (
        [ID] => 5
        [ask_for_review] => 1
    )

[2] => Array
    (
        [ID] => 7
        [ask_for_review] => 3
    )

)

还有一个...

Array
(
[0] => Array
    (
        [ID] => 7
        [ask_for_review] => 3
    )

[1] => Array
    (
        [ID] => 9
        [ask_for_review] => 2
    )

[2] => Array
    (
        [ID] => 11
        [ask_for_review] => 2
    )

)

我想更新基于数组中遇到的ask_for_review 第一个最低值的行。

在第一个示例中,ID 5 将被更新。其他 ID 将被忽略。 在第二个示例中,ID 9 将被更新。其他 ID 将被忽略。

更新内容类似于:

$query = "UPDATE tasks SET priority='1' WHERE ..."

我不知道如何处理 where 子句。如何从 PHP 数组中选择最小值并将其放入 mysql 查询中?

添加

感谢@fedeisas 在下面提供的帮助。

在这样的查询中使用该函数的最佳方式是:

$search_id = get_min_row($priority_array); $query = "更新任务 SETpriority='1' WHERE ID = $search_id;";

或者有更好的方法吗?

最佳答案

您可能可以直接使用 SQL 来完成此操作,但我不知道您的表的结构,因此我假设您想使用 PHP 找到最小值。

这是一种可能的方法:

<?php 

$list_1 = [
    ['ID' => 6, 'ask_for_review' => 2],
    ['ID' => 5, 'ask_for_review' => 1],
    ['ID' => 7, 'ask_for_review' => 3]
];

$list_2 = [
    ['ID' => 7, 'ask_for_review' => 3],
    ['ID' => 9, 'ask_for_review' => 2],
    ['ID' => 11, 'ask_for_review' => 2]
];

function get_min_row($list) {
    $reviews = array_map(
        function ($row) {
            return $row['ask_for_review'];
        },
        $list
    );
    $row_key = array_search(min($reviews), $reviews);

    return $list[$row_key]['ID'];
}

var_dump(get_min_row($list_1)); // int(5)
var_dump(get_min_row($list_2)); // int(9)

关于php - MySQL基于PHP数组的最低值更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43357504/

相关文章:

php - MIGS 主卡网关服务付款显示 HTTP 状态 - 400?

php - PHP 数组中的 JSON 键值对使用 json_encode() 函数

php - mysql中表之间的关系

c - 我的程序不接受使用 getchar 的 c 中的简单字符串

arrays - 使用递归交换数组中的相邻元素

javascript - 这段 JavaScript 代码有什么问题吗?

php - 如果列具有逗号分隔值并包含字符串的任何字符,如何在 mysql 中查找结果

mysql - OperationalError : (1054, "Unknown column ' time_table.id' in 'field list' ")

php - 当用户名不在数据库中时,mysqli_data_seek 函数返回用户名结果

php - 尽管安装了根证书但握手失败(PayPal 升级 - g5 证书 - openssl)