我应该注意这仅适用于 php 5.4+
# Example results from database
$PDOresult = array(
array('name' => 'Alpha', 'price' => '10'),
array('name' => 'beta', 'price' => '12'),
array('name' => 'Gamma', 'price' => '14'),
array('name' => 'delta', 'price' => '16'),
array('name' => 'Epsilon', 'price' => '18'),
array('name' => 'zeta', 'price' => '20'),
...
);
# Create array of field to sort by - 'name' in this example
foreach ($PDOresult as $key => $row) {
$sort_by[$key] = $row['name'];
}
# Sort array - The flags SORT_NATURAL & SORT_FLAG_CASE are required to make the
# sorting case insensitive.
array_multisort($sort_by, SORT_ASC, SORT_NATURAL|SORT_FLAG_CASE, $PDOresult);
# Output
var_dump($PDOresult);
如果使用 php 5.5+ 你可以跳过foreach()
并使用数组列() http://php.net/manual/en/function.array-column.php反而。就像这样:
$sort_by = array_column($PDOresult, 'name');
我很想将其编辑为写得好的答案:如何在 PHP 中对数组和数据进行排序? https://stackoverflow.com/questions/17364127/reference-all-basic-ways-to-sort-arrays-and-data-in-php/17364128#17364128但我不想搞砸格式,所以如果有人想这样做并关闭它,那对我来说没问题。