使用array_multisort对数组排序后,如何用循环展示所有数据?
使用array_multisort排序后遍历数组的方法
首先,先把你提供的数组整理成可直接使用的PHP数组结构:
$originalArray = [ [ 'hashtag' => 'a7e87329b5eab8578f4f1098a152d6f4', 'title' => 'Flower', 'order' => 3 ], [ 'hashtag' => 'b24ce0cd392a5b0b8dedc66c25213594', 'title' => 'Free', 'order' => 2 ], [ 'hashtag' => 'e7d31fc0602fb2ede144d18cdffd816b', 'title' => 'Ready', 'order' => 1 ] ];
1. 用array_multisort完成排序
以按order字段升序排序为例,先提取所有元素的order值作为排序依据,再执行排序:
// 提取数组中所有元素的order字段值 $sortKeys = array_column($originalArray, 'order'); // 按order升序排列原数组 array_multisort($sortKeys, SORT_ASC, $originalArray);
如果需要按其他规则排序(比如title降序),只需修改提取的字段和排序参数:
$sortKeys = array_column($originalArray, 'title'); array_multisort($sortKeys, SORT_DESC, $originalArray);
2. 遍历排序后的数组展示数据
用foreach循环遍历排序后的数组,逐个输出元素的字段内容:
Web环境输出(带HTML换行)
foreach ($originalArray as $item) { echo "Hashtag: " . $item['hashtag'] . "<br>"; echo "Title: " . $item['title'] . "<br>"; echo "Order: " . $item['order'] . "<br><br>"; }
命令行/CLI环境输出
foreach ($originalArray as $item) { echo "Hashtag: " . $item['hashtag'] . PHP_EOL; echo "Title: " . $item['title'] . PHP_EOL; echo "Order: " . $item['order'] . PHP_EOL . PHP_EOL; }
内容的提问来源于stack exchange,提问作者Rashmi Pani
相关产品推荐
相关产品推荐

