这是我的PHP脚本。我想要做的是通过键对响应数组进行排序。我希望对数组进行排序的关键是行的一个组件。为了更好地澄清,说该行包含一个字符串和一个int类型对象。如何使用int对象作为键对数组进行排序?我看过ksort()并了解如何使用它,但我不确定如何以我试图的方式使用它。
<?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);
}
?>
答案 0 :(得分:0)
上面的评论可能会回答这个特定的要求,但我还想描述如何对问题海报想要的PHP数组进行排序:
选择的方法不是ksort()
(按键排序),而是
usort (&$array, $value_compare_func)
(按用户定义的回调排序):
usort($response['stuff'], function($a, $b) {
return $a['integer'] - $b['integer'];
});
闭包函数是使用数组成员作为操作数的简单整数比较(在本例中使用键integer
)。
在比较其他类型的值时,应调整比较函数以满足usort()
的要求。例如。对于字符串,可以使用strcmp()
。