php – 如果与字符串相比,如何将数组元素移动到顶部?

前端之家收集整理的这篇文章主要介绍了php – 如果与字符串相比,如何将数组元素移动到顶部?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数组$result从 mysql获取如下
Array
(
    [0] => Array
        (
            [p_title] => Apple The New iPad (White,64GB,WiFi)
        )
    [1] => Array
        (
            [p_title] => Apple ipad Mini/ipad Mini Retina Belkin Fastfit Bluetooth Wireless Key
        )
    [2] => Array
        (
            [p_title] => Apple ipad Air (16GB,WiFi + Cellular)
        )
)

并假设我在$sort_by变量中按值排序.
对于前目前,

$sort_by="Apple ipad";

所以我想将每个拥有p_title“Apple ipad”的数组元素移到顶部.

所以我的输出数组应该是;

Array
(
    [0] => Array
        (
            [p_title] => Apple ipad Air (16GB,WiFi + Cellular)
        )
    [1] => Array
        (
            [p_title] => Apple ipad Mini/ipad Mini Retina Belkin Fastfit Bluetooth Wireless Key
        )
    [2] => Array
        (
            [p_title] => Apple The New iPad (White,WiFi)
        )
)

我准备在mySQL查询PHP中编辑代码.

使用usort():
function sortx($a,$b) {
    if(strpos($a['p_title'],'Apple ipad')!==false){
        return -1;
    }
    return 1;
}

usort($array,'sortx');

只要前面的值包含该字符串,它就会被推向数组的开头.

如果要在usort()函数中使用变量,则需要使用对象:

class SortTitles{
    public $string;
    function sortx($a,$b) {
        if(strpos($a['p_title'],$this->string)!==false){
            return -1;
        }
        return 1;
    }
    public function sort_titles($array){
        usort($array,'self::sortx');
        return $array;
    }

}
$sort = new SortTitles;
$sort->string = 'Apple ipad';
$array = $sort->sort_titles($array);

猜你在找的PHP相关文章