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