2017-06-03 14 views
-2

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

比如我有此数组:

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


]; 

,我想利用数组,其中一些名称,并将其放置在数组的开头。

回答

0

当然。简单的元素交换。

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

我以为他们要保留其余元素的顺序,以有效地通过一个指数“动他们都起来” ...... – CBroe

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