博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】由于写了一个整站的网络爬虫,我想将爬取到的所有 url 按照 url 阿拉伯字母的顺序进行排序,然而这是一个二维数组,然后我网上百度了一个二维数组排序的基本方法,使用 array_multisort 对二维数组进行按字段排序,本文给出示例。
首先关于 array_multisort 函数这里不多说了,想要了解有关于它更多的信息,查阅 PHP 学习手册即可。本文仅给出示例。
二维数组 $urls 中,要按照 url 进行排序,如下:
$urls = array
(
array
(
'id' => 1,
'url' => 'http://www.mafutian.net/1.html',
'httpcode' => '200',
),
array
(
'id' => 2,
'url' => 'http://www.mafutian.net/5.html',
'httpcode' => '200',
),
array
(
'id' => 3,
'url' => 'http://www.mafutian.net/4.html',
'httpcode' => '200',
),
array
(
'id' => 4,
'url' => 'http://www.mafutian.net/3.html',
'httpcode' => '200',
),
array
(
'id' => 5,
'url' => 'http://www.mafutian.net/2.html',
'httpcode' => '200',
),
);
var_dump($urls);
// 下面代码实现:
$arr_url = array();
foreach($urls as $k => $v)
{
$arr_url[$k] = $v['url'];
}
array_multisort($arr_url,SORT_ASC,SORT_STRING,$urls);
var_dump($urls);
/*
输出:
array (size=5)
0 =>
array (size=3)
'id' => int 1
'url' => string 'http://www.mafutian.net/1.html' (length=30)
'httpcode' => string '200' (length=3)
1 =>
array (size=3)
'id' => int 5
'url' => string 'http://www.mafutian.net/2.html' (length=30)
'httpcode' => string '200' (length=3)
2 =>
array (size=3)
'id' => int 4
'url' => string 'http://www.mafutian.net/3.html' (length=30)
'httpcode' => string '200' (length=3)
3 =>
array (size=3)
'id' => int 3
'url' => string 'http://www.mafutian.net/4.html' (length=30)
'httpcode' => string '200' (length=3)
4 =>
array (size=3)
'id' => int 2
'url' => string 'http://www.mafutian.net/5.html' (length=30)
'httpcode' => string '200' (length=3)
*/
这里的重点就是,先把要排序的字段的所有值存到一个一维数组中,然后就可以使用 array_multisort 这个函数,将数组按照 key 进行排序了,当然,这里的排序你完全可以不适用 array_multisort 这个函数,仅仅通过 foreach 遍历也能达到这个效果,但是既然 php 开发者给我们提供了更好的办法,我们就可以省去不必要的麻烦了。
版权归 马富天PHP博客 所有
本文标题:《PHP 使用 array_multisort 对二维数组按某一指定字段进行排序》
本文链接地址:http://www.mafutian.net/236.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0
评论审核未开启 |