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

时间:2017-06-03 14:55:30

标签: php arrays

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

例如我有这个数组:

$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'
    ],


];

我希望在名称某些名称的情况下使用数组,并将其放在数组的开头。

2 个答案:

答案 0 :(得分:1)

如果你想按值搜索并重新索引数组,那么应该这样做。

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);
}

答案 1 :(得分:0)

当然。简单的元素交换。

mget