在关联数组列表php中向上或向下移动项目

时间:2013-03-21 06:32:08

标签: php arrays

您好我想知道我可以做什么来将关联数组中的项目“向上或向下”移动一个例如此数组:

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

2 个答案:

答案 0 :(得分:1)

试试此代码

$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 )

答案 1 :(得分:0)

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

$key => $value

假设key1且值为'Mohit' 所以就像1 => Mohit 并且您的查询采用变量$key=0; 然后$value是一组值,例如

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

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

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