Php 按行值对数据库行数组排序
这是我的PHP脚本。我希望做的是按键对响应数组进行排序。我希望对数组进行排序的键是行的一个组件。为了更好地澄清,假设该行包含一个字符串和一个int类型的对象。如何使用int对象作为键对数组进行排序?我看过ksort并了解如何使用它,但我不确定如何以我正在尝试的方式使用它Php 按行值对数据库行数组排序,php,arrays,sorting,Php,Arrays,Sorting,这是我的PHP脚本。我希望做的是按键对响应数组进行排序。我希望对数组进行排序的键是行的一个组件。为了更好地澄清,假设该行包含一个字符串和一个int类型的对象。如何使用int对象作为键对数组进行排序?我看过ksort并了解如何使用它,但我不确定如何以我正在尝试的方式使用它 <?php // array for JSON response $response = array(); $host = "localhost"; //server $db = "Test"; //database
<?php
// array for JSON response
$response = array();
$host = "localhost"; //server
$db = "Test"; //database name
$user = "root"; //dabases user name
$pwd = "xxxxxxx"; //password
$link = mysqli_connect($host, $user, $pwd, $db);
$result = mysqli_query($link, "SELECT * FROM Table");
// check for empty result
if (mysqli_num_rows($result) > 0)
{
$response["stuff"] = array();
$event = "";
while ($row = mysqli_fetch_array($result)) {
$event = $row;
$response[] = event;
}
//Here I wish to sort the array by the int object as key.
$response["success"] = 1;
echo json_encode($response);
}
?>
上面的评论可能会回答这一特定要求,但我还想描述如何像问题海报所希望的那样对PHP数组进行排序: 选择的方法不是按键排序,而是按键排序 按用户定义的回调排序:
usort($response['stuff'], function($a, $b) {
return $a['integer'] - $b['integer'];
});
其中,闭包函数是一个简单的整数比较,在本例中使用数组成员作为操作数与键整数。
当比较其他类型的值时,应调整比较功能以满足usort的要求。例如,对于字符串,可以使用strcmp。是否要使用PHP进行排序?不只是通过查询对其进行排序,mysql已经具备了这样的能力。请看这个例子@超级用户,你肯定没问题