排序多维数组,因此首先是特定的子数组

时间:2018-03-06 15:35:46

标签: php arrays sorting

我想对数组进行排序,以便将具有特定值的特定数组显示为数组中的第一个。

我拥有的数组:

array = [
        [0] => [
            'id' => 123,
            'name' => 'Random'
        ],
        [1] => [
            'id' => 156,
            'name' => 'keyboard'
        ],
        [2] => [
            'id' => 12235,
            'name' => 'Text'
        ],
    ];

我想要名称为' 键盘'的子阵列。成为大阵列中的第一个。

有人有建议吗?

2 个答案:

答案 0 :(得分:2)

usort使用用户定义的比较函数

按值对数组进行排序
$array = [
    0 => [
        'id' => 123,
        'name' => 'Random'
    ],
    1 => [
        'id' => 156,
        'name' => 'keyboard'
    ],
    2 => [
        'id' => 12235,
        'name' => 'Text'
    ],
];

usort($array, function ($item) {
    return  $item['name'] != 'keyboard';
});

print_r($array);

请参阅demo

答案 1 :(得分:0)

$myArray = [
    [0] => [
        'id' => 123,
        'name' => 'Random'
    ],
    [1] => [
        'id' => 156,
        'name' => 'keyboard'
    ],
    [2] => [
        'id' => 12235,
        'name' => 'Text'
    ],
];

$temp = $myArray[0];
$myArray[0] = $myArray[1];
$myArray[1] = $temp;