gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:01:21 26 4
gpt4 key购买 nike

我有一个名为 $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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com