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);
}
我假设他们想要保持其余元素的顺序,所以有效地“将它们全部上移”一个索引。。。