移位数组-PHP

移位数组-PHP,php,Php,我正在从事我的一个项目,有一个基于硬件的组件,它将我收集的数据发送回,并通过该组件创建阵列。一个函数是比较一个数组和另一个数组中的数据。我遇到的一件麻烦事是,由于数组的循环方式,它似乎总是在数组的2索引中放置一个值。我的问题是,该数组中的值0和1中没有任何内容。它们相互抵消。如何将数组的索引2中的值移动到索引0,或者以更动态的方式移动该值;把它放在第一个可用的插槽中 我们非常感谢您的想法和建议 编辑: 数组([2]=>0x0000000000004004490529)-这是使用打印输出的 更新:

我正在从事我的一个项目,有一个基于硬件的组件,它将我收集的数据发送回,并通过该组件创建阵列。一个函数是比较一个数组和另一个数组中的数据。我遇到的一件麻烦事是,由于数组的循环方式,它似乎总是在数组的
2
索引中放置一个值。我的问题是,该数组中的值
0和1
中没有任何内容。它们相互抵消。如何将数组的索引
2
中的值移动到索引
0
,或者以更动态的方式移动该值;把它放在第一个可用的插槽中

我们非常感谢您的想法和建议

编辑:

数组([2]=>0x0000000000004004490529)
-这是使用打印输出的

更新:

以下是迭代数组时的输出:

Notice: Undefined offset: 0 in daemon.php on line 259

Notice: Undefined offset: 1 in daemon.php on line 259
这将从0重新索引数组

$array = array(2 => 'foo'); // your starting point
$array = array_merge($array);
var_dump($array);
// array(1) { [0]=> string(3) "foo" }
或者,如果您只有一个键,并且它总是在索引2中,那么您也可以用简单的方法执行此操作:

$array = array(2 => 'foo'); // your starting point
$array[0] = $array[2];
unset($array[2]);

您可以使用以下方法重置所有键:

示例:

<?php
    $array = array(
        0 => 'baz',
        2 => 'foo',
        4 => 'bar'
    );

    $array = array_values($array);

    print_r($array);
    /*
        Array
        (
            [0] => baz
            [1] => foo
            [2] => bar
        )
    */
?>

太长,读不下去了你的代码在哪里?一些代码或示例输出会很容易帮助你,很抱歉完全忘记了代码。@Nanne我的意思是输出,请原谅我的英语。但值并不总是在索引2中,它只是取决于数据库中有多少字段,所以我如何动态设置它?@DavidBiga array\u merge不取决于它在键2中。无论该键位于何处,它都将始终在0中重新建立索引。试试看,效果很好,我可能应该找这样的东西。再次感谢,你得到了分数:)
$array = array_values($array);
<?php
    $array = array(
        0 => 'baz',
        2 => 'foo',
        4 => 'bar'
    );

    $array = array_values($array);

    print_r($array);
    /*
        Array
        (
            [0] => baz
            [1] => foo
            [2] => bar
        )
    */
?>
function array_values($array) {
    $return = array();

    foreach ($array as $value) {
        $return[] = $value;
    }

    return $return;
}