如何在保持键相同的同时旋转数组的值? PHP

时间:2015-09-08 07:39:04

标签: php arrays

你将如何在php中旋转数组的值? 例如:

array ('bill'=>'bob','marley'=>'mary','jake'=>'jack');

这样它就可以旋转值并保持键,这样就可以了,

array ('bill'=>'jack','marley'=>'bob','jake'=>'mary');

提前致谢!

3 个答案:

答案 0 :(得分:1)

阅读每行的评论以获取详细信息

$a = array ('bill'=>'bob','marley'=>'mary','jake'=>'jack');
$key = array_keys($a);// get all the keys of array
$value = array_values($a);// get all the value of array
$rev = array_reverse($value);// reverse your value
$new_array = array_combine($key, $rev);// combine array wirh key and reverse value
 print_r($new_array);

<强>输出

  

数组([bill] =&gt; jack [marley] =&gt; mary [jake] =&gt; bob)

答案 1 :(得分:0)

您还可以使用PHP数组Shuffle和循环:

$array = array ('bill'=>'bob','marley'=>'mary','jake'=>'jack');
$keys =array_keys($array);
shuffle($array);
$newArray =  array();
foreach ($keys as $key => $value)
{
   $newArray[$value] = $array[$key];
}
print_r($newArray);

这是一个有效的DEMO

答案 2 :(得分:0)

必须有一个简单的方法,但这就是我想出来的:

 <?php $arr = array ('bill'=>'bob','marley'=>'mary','jake'=>'jack');
       $reversed = array();
           $i = 4;
        foreach($arr as $key => $val){
            $reversed[$key] = $arr[$i];
            $i--;
        }
     print_r($reversed);
  ?>