PHP-从数组中获取元素并在开始时推送它

PHP-从数组中获取元素并在开始时推送它,php,arrays,Php,Arrays,是否有一种简单的方法可以获取特定的数组元素,并将其放置在数组的开头 例如,我有一个数组: $array = [ [ 'name' => 'Jon Doe', 'age' => 44, 'sex' => 'm' ], [ 'name' => 'Joana Doe', 'age' => 44, 'sex' => 'f' ],

是否有一种简单的方法可以获取特定的数组元素,并将其放置在数组的开头

例如,我有一个数组:

$array = [

    [
        'name' => 'Jon Doe',
        'age'  => 44,
        'sex'  => 'm'
    ],
    [
        'name' => 'Joana Doe',
        'age'  => 44,
        'sex'  => 'f'
    ],
    [
        'name' => 'Jon Doe',
        'age'  => 44,
        'sex'  => 'm'
    ],
    [
        'name' => 'Some Name',
        'age'  => 44,
        'sex'  => 'f'
    ],
    [
        'name' => 'Another Name',
        'age'  => 44,
        'sex'  => 'f'
    ],


];

我想取一个数组,其中name某个name,然后把它放在数组的开头。简单的元素交换

$tmp = $array[2]; // 3rd element
$array[2] = $array[0]; // set 3rd to values with 1st
$array[0] = $tmp; // set first to values with 3rd

如果希望按值搜索并重新索引数组,那么类似的操作应该可以完成

function searchForId($name, $array) {
   foreach ($array as $key => $val) {
       if ($val['name'] === $name) {
           return $key;
       }
   }
   return null;
}
$id = searchForId('name', $array);
if($id !== null) {
   $tmp = $array[$id];
   unset($array[$id]);
   $array = array_values($array);
   array_unshift($array, $tmp);
}

我假设他们想要保持其余元素的顺序,所以有效地“将它们全部上移”一个索引。。。