【问题标题】:Add a element to a PHP associative array将元素添加到 PHP 关联数组
【发布时间】:2010-05-05 10:38:28
【问题描述】:
1=>america,2=>India,3=>england

上面是我的关联数组。如何将 3=>england 带到阵列的前面?

【问题讨论】:

  • 正如各种各样的答案所显示的那样,有不止一种方法可以处理这种特定情况。了解您实际想要实现的目标会有所帮助 - 您是想要在前面具有最高数字索引的那个,还是只是将最后一个元素移到前面,或者您想要 '3 => england' 到前面它在数组中的哪个位置?还是完全不同的东西?
  • 这不是一个关联数组,它是一个索引数组,尽管在实践中,PHP 将索引数组实现为关联数组。

标签: php arrays associative-array


【解决方案1】:

使用array_poparray_unshift

$lastItem = array_pop($array);
array_unshift($array, $lastItem);

【讨论】:

    【解决方案2】:

    您可以为此使用array_unshift 函数。

    $array = array('americ', 'India');
    array_unshift($array, 'englans');
    print_r($array);
    

    输出:

    Array
    (
        [0] => englans
        [1] => americ
        [2] => India
    )
    

    【讨论】:

      【解决方案3】:

      如果您想保留数组键,请使用array_slice(,,,TRUE)

      $array = array_slice( $array, -1, 1, TRUE ) + array_slice( $array, 0, -1, TRUE );
      

      【讨论】:

        【解决方案4】:
        $temp = myArray[3];
        $myArray[3] = $myArray[2];
        $myArray[2] = $myArray[1];
        $myArray[1] = $temp;
        

        【讨论】:

          【解决方案5】:

          您可以使用 array_reverse 来做到这一点,您可以在 http://php.net/manual/en/function.array-reverse.php 找到文档

          【讨论】:

            【解决方案6】:
            krsort($myArray, SORT_NUMERIC)
            

            【讨论】:

              【解决方案7】:

              您可以为此使用array_poparray_unshift

              $last = array_pop($array);
              array_unshift($array, $last);
              

              【讨论】:

                【解决方案8】:

                我认为他希望将元素 3=>england 放在前面,这样他就可以将它与 foreach 一起使用,而数组的其余部分必须留在同一个地方

                比他想要的结果

                $array[1] = 'america';
                $array[2] = 'India';
                $array[3] = 'england';
                $new_array[3] = $array[3];
                $new_array[1] = $array[1];
                $new_array[2] = $array[2];
                print_r($new_array);
                

                可能有一个函数但是我找不到它所以我做了一个

                function placeLastToFirst($array){
                    $newArray = array();
                    $newArray[count($array)] = $array[count($array)];
                    for($i = 1;$i < count($array);$i++){
                
                        $newArray[$i] = $array[$i ];
                    }
                    return $newArray;
                }
                

                您必须注意,因为此函数仅在数组以 1 开头时才有效(普通数组以 0 开头)。在这种情况下,您可以使用这个

                function placeLastToFirst($array){
                    $newArray = array();
                    $newArray[count($array)-1] = $array[count($array)-1];
                    for($i = 0;$i < count($array)-1;$i++){
                
                        $newArray[$i] = $array[$i];
                    }
                    return $newArray;
                }
                

                【讨论】:

                  【解决方案9】:
                  $contractTypes = array('' => 'All') + $contractTypes;
                  

                  【讨论】:

                    猜你喜欢
                    • 2012-01-23
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-10-23
                    • 1970-01-01
                    • 2017-04-04
                    • 2013-07-10
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多