0

嗨,我想知道我可以做些什么来将关联数组中的项目“向上或向下”移动一个,例如对于这个数组:

 Array ( [list] => 
      Array ( [Name1] => 1, 
              [Name2] => 1, 
              [Name3] => 1, 
              [Name4] => 1, 
              [Name5] => 1,  )
 ) 

我知道如何以non-associative array这种方式做到这一点:

   $a = array('a','b','c','d','e');

   function down($a,$x) {
     if( count($a)-1 > $x ) {
    $b = array_slice($a,0,$x,true);
    $b[] = $a[$x+1];
    $b[] = $a[$x];
    $b += array_slice($a,$x+2,count($a),true);
    return($b);
     } else { 
            return $a; 
         }
   }

 function up($a,$x) {
   if( $x > 0 and $x < count($a) ) {
    $b = array_slice($a,0,($x-1),true);
    $b[] = $a[$x];
    $b[] = $a[$x-1];
    $b += array_slice($a,($x+1),count($a),true);
    return($b);
   } else { 
            return $a; 
       }
 }

  //Use 

  // Move item 4 up
  print_r(up($a,4));
4

2 回答 2

2

试试这个代码

$array=array(0=>'name1', 1=>'name2', 2=>'name3', 3=>'name4', 4=>'name5');

function moveElement(&$array, $a, $b) {
    $out = array_splice($array, $a, 1);
    array_splice($array, $b, 0, $out);
}
moveElement($array, 3, 1);

print_r($array);

Result :

Array ( [0] => name1 [1] => name4 [2] => name2 [3] => name3 [4] => name5 )
于 2013-03-21T06:44:34.943 回答
0

根据您的查询,您想在关联数组中输入值,如下所示在关联数组中,每个值都使用一个键,它就像一个值的数字。

$key => $value

假设keyis1和 value 就是'Mohit' 这样1 => Mohit ,你的查询需要一个变量$key=0;然后$value是一个值数组,例如

$value = { 'Mohit','Nick','John' }

$key=0;
foreach($value as $val)
{
    $key => $val;
    $key++;
}

像这样我们可以创建一个新的关联数组。

于 2013-03-21T06:49:09.890 回答