PHP旋转并添加到数组

时间:2012-10-29 08:04:37

标签: php mysql sql arrays

是否可以在PHO中执行以下操作

我从我的数据库返回一个类似于以下内容的数组

1,2,3现在我想向它添加第四个数字,然后求助于它们

1 becomes 5
2 becomes 1
3 becomes 2
Fourth Number becomes 3

或是否需要重新排列我的桌子以便它旋转。我想要做的是旋转并在数据库中按顺序返回一行但是一旦它被返回我想要我的页面我想让用户在我的数据库中输入另一行然后放入已返回的行到最后,它将具有最高价值。

我基本上是通过从所有条目中减去一个并将我的第一个条目增加到最高数字来更新我的列

a. 1,2,3
b. 4,1,2,3
c. 3,5,1,2,4
d. 2,4,6,1,3,5

嗯,我不认为我说的是我正在寻找的东西,或者有人理解我想说的话所以我不会改变它。

或者,如果我可以使用从1开始的自动递增键,只需重新排列其他列中的所有数据即可。

这样做 1.计算行数 2.返回包含所有数据库表条目的数组 2.在最后一行向数据库添加新条目。 3.将条目1移动到行数+1(创建新行) 4.将所有其他条目向上移动一个。

所以这是

1 -> a
2 -> b
3 -> c

添加另一行后

1 -> b
2 -> c
3 -> d
4 -> a

添加另一行后

1 -> c 
2 -> d 
3 -> a 
4 -> e
5 -> b 

添加另一行后

1 -> d
2 -> a
3 -> e
4 -> b
5 -> f
5 -> c

添加另一行后

1 -> a
2 -> e
3 -> b
4 -> f
5 -> c
5 -> g
5 -> d

世卫组织可以为我提出解决方案?????

2 个答案:

答案 0 :(得分:0)

尝试

$arr = array('a','b','c');
$value = 'd';
$arr = my_sort($arr, $value);
print_r($arr);
echo nl2br(PHP_EOL);
$arr = my_sort($arr, 'e');
print_r($arr);

function my_sort($arr, $value) {
  $arr[] = $value;
  $first = array_shift($arr);
  $arr[] = $first;

  return $arr;
}

检查http://codepad.viper-7.com/yJE8FR

答案 1 :(得分:0)

您可以使用以下功能并将移位参数传递给它。函数名称是下面的rotate_array()。使用该函数后,添加下一个值。

<?php

$weekdays = array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");

function rotate_array($steps, $arr)
{
    if($steps >= 0)
    {
        for($i = 0; $i < $steps; $i++)
        {
            $elm = array_shift($arr);
            array_push($arr, $elm);
        }
    }
    else
    {
        for($i = 0; $i > $steps; $i--)
        {
            $elm = array_pop($arr);
            array_unshift($arr, $elm);
        }
    }
    return $arr;
}

$arr = rotate_array(1, $weekdays);

//For multidimensional array, add this part

foreach($arr as $key => $childArray) {

       rotate_array(1,$childArray);


}
//end of addition

$arr[] = "next value";
echo "<pre>";
print_r($arr);
echo "</pre>";


?>

输出:

Array
(
    [0] => Tue
    [1] => Wed
    [2] => Thu
    [3] => Fri
    [4] => Sat
    [5] => Sun
    [6] => Mon
    [7] => next value
)