使用搜索文本对数组进行排序

时间:2015-03-04 06:34:35

标签: php arrays sorting

我有一个数组:

$strings = [
    '1'=>'Hie bye why',
    '2'=>'abc xyz pqr',
    '3'=>'abc xyz lmn'
];

我有一个搜索字符串abc xyz pqr。我想对数组进行排序,以便匹配搜索字符串的字符串应位于数组中的第一个位置,依此类推

即。 abc xyz pqr首先应该不是abc xyz lmn

我该怎么做?

1 个答案:

答案 0 :(得分:0)

试试这个

<?php

$strings = [
    '1'=>'Hie bye why',
    '2'=>'abc xyz pqr',
    '3'=>'abc xyz lmn'
];

$search = 'abc xyz pqr';


// Debugging
echo 'Before sort:';
echo '<pre>'.print_r($strings,true).'</pre>';

// Sort the array
usort($strings, function($a, $b) use ($search) {
    return ($search == $a) ? -1 : 1;
});

// Debugging
echo 'After sort:';
echo '<pre>'.print_r($strings,true).'</pre>';