Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP函数对数组进行重新排序_Php_Arrays - Fatal编程技术网

PHP函数对数组进行重新排序

PHP函数对数组进行重新排序,php,arrays,Php,Arrays,是否有一个PHP函数来移动数组键/值对并使其成为数组中的第一个元素 基本上,我想转换 Array ( [a] => rose [b] => tulip [c] => dahlia [d] => peony [e] => magnolia ) 到 澄清一下,目的是选择一个特定的键/值对,并将其移动到第一个索引中,同时保持顺序的其余部分不变 所以在这种情况下,我在寻找类似 $old_array = Array (

是否有一个PHP函数来移动数组键/值对并使其成为数组中的第一个元素

基本上,我想转换

Array
(
    [a] => rose
    [b] => tulip
    [c] => dahlia
    [d] => peony
    [e] => magnolia
)

澄清一下,目的是选择一个特定的键/值对,并将其移动到第一个索引中,同时保持顺序的其余部分不变

所以在这种情况下,我在寻找类似

$old_array = Array
    (
        [a] => rose
        [b] => tulip
        [c] => dahlia
        [d] => peony
        [e] => magnolia
    );
$new_array = some_func($old_array, 'c');
在$new_数组中,“c”应位于列表的第一位


关于“some_func()”的代码有什么想法吗?

如果您只想将一个元素放在第一位,那么您可以执行以下操作:

function some_func($array, $key) {
   $tmp = array($key => $array[$key]);
   unset($array[$key]);
   return $tmp + $array;
}

如果只想先放置一个元素,则可以执行以下操作:

function some_func($array, $key) {
   $tmp = array($key => $array[$key]);
   unset($array[$key]);
   return $tmp + $array;
}

这可能对您有所帮助:

function myfun($ar,$key){
    if (array_key_exists($key,$ar)) {
        $arr_tmp = array($key => $ar[$key]);
        unset($ar[$key]);
        return $arr_tmp + $ar;        
    }
}

这可能对您有所帮助:

function myfun($ar,$key){
    if (array_key_exists($key,$ar)) {
        $arr_tmp = array($key => $ar[$key]);
        unset($ar[$key]);
        return $arr_tmp + $ar;        
    }
}


我冒着似乎想被输入所有内容的风险,除了简单地传递一个键并让该键(加上相关值)移动到第一个索引位置之外,我没有任何排序逻辑。你能帮忙吗?@Dayo我为你的需求写了
some_func
:)PHP的排序算法不稳定,所以在这种情况下使用它不是很简单。在排序之前,您必须为每个元素编制索引,以便保持顺序。非排序答案可能是最有效的。您应该检查密钥。如果密钥不存在,则它将在第一个位置添加密钥,但值将不可用。@xdazz感谢您提供的修改版本。这与我先前接受的Mahesh的答案类似。我冒着似乎想要得到所有东西的风险,除了简单地想要传递一个键并让该键(加上相关值)移动到第一个索引位置之外,我没有任何排序逻辑。你能帮忙吗?@Dayo我为你的需求写了
some_func
:)PHP的排序算法不稳定,所以在这种情况下使用它不是很简单。在排序之前,您必须为每个元素编制索引,以便保持顺序。非排序答案可能是最有效的。您应该检查密钥。如果密钥不存在,则它将在第一个位置添加密钥,但值将不可用。@xdazz感谢您提供的修改版本。这与马赫什的回答很相似,我接受了他的回答,因为它来得更早