PHP:如何根据搜索到的术语对多维数组进行排序

埃米尔·米米克(Emir Memic)

是否可以通过搜索到的术语对多维数组键进行排序?例如,我有这样的事情:

 $list =   array(
      'search' => array(
        'name' => 'Jon'),
      'search else' => array(
        'name' => 'Matt'),
      'not this' => array(
        'name' => 'Dan'),
      'neither this' => array(
        'name' => 'Oz'),
      'always search me' => array(
        'name' => 'Lukas')
    );

function sort_by_search($x, $y) {
  $term = $_GET['keyword'];
    return $x[$term] == $y[$term];
}

uasort($list, 'sort_by_search');

print_r($list);

现在,如果我在url中传递关键字词“搜索”,我该如何返回数组,以便将所有包含“搜索”一词的键都呈现在顶部?

它需要像这样回来:

Array
(
    [search] => Array
        (
            [name] => Jon
        )

    [search else] => Array
        (
            [name] => Matt
        )

    [always search me] => Array
        (
            [name] => Lukas
        )

    [not this] => Array
        (
            [name] => Dan
        )

    [neither this] => Array
        (
            [name] => Oz
        )

)
杜洛斯
<?php

 $list =   array(
      'search' => array(
        'name' => 'Jon'),
      'search else' => array(
        'name' => 'Matt'),
      'not this' => array(
        'name' => 'Dan'),
      'neither this' => array(
        'name' => 'Oz'),
      'always search me' => array(
        'name' => 'Lukas')
    );

function key_compare($a, $b)
{
    $test_a = stripos($a, 'search');
    $result_a = (false===$test_a)?1:0;

    $test_b = stripos($b, 'search');
    $result_b = (false===$test_b)?1:0;

    return $result_a-$result_b;
}

uksort($list, 'key_compare');

echo '<pre>';
print_r($list);

输出:

Array
(
    [search] => Array
        (
            [name] => Jon
        )

    [search else] => Array
        (
            [name] => Matt
        )

    [always search me] => Array
        (
            [name] => Lukas
        )

    [not this] => Array
        (
            [name] => Dan
        )

    [neither this] => Array
        (
            [name] => Oz
        )

)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章