Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何重新索引多维数组的所有子数组元素?_Php_Multidimensional Array_Reindex - Fatal编程技术网

Php 如何重新索引多维数组的所有子数组元素?

Php 如何重新索引多维数组的所有子数组元素?,php,multidimensional-array,reindex,Php,Multidimensional Array,Reindex,问题是如何重置密钥,例如,对于阵列: Array ( [1_Name] => Array ( [1] => leo [4] => NULL ) [1_Phone] => Array ( [1] => 12345 [4] => 434324 ) ) $arr = array_map('array_values', $arr); 重置为: Arra

问题是如何重置密钥,例如,对于阵列:

Array ( 
    [1_Name] => Array ( 
        [1] => leo 
        [4] => NULL 
    ) 
    [1_Phone] => Array ( 
        [1] => 12345 
        [4] => 434324
    )  
)
$arr = array_map('array_values', $arr);
重置为:

Array ( 
    [1_Name] => Array ( 
        [0] => leo 
        [1] => NULL 
    ) 
    [1_Phone] => Array ( 
        [0] => 12345 
        [1] => 434324
    ) 
)

使用
数组_值
重置键

foreach($input as &$val) {
   $val = array_values($val);
}

要重置阵列中所有阵列的键,请执行以下操作:

Array ( 
    [1_Name] => Array ( 
        [1] => leo 
        [4] => NULL 
    ) 
    [1_Phone] => Array ( 
        [1] => 12345 
        [4] => 434324
    )  
)
$arr = array_map('array_values', $arr);
如果您只想重置第一级数组键,请不使用

通过此功能,您可以重置阵列

$array[0] = 'Apple';
$array[1] = 'Orange';
$array[2] = 'Peach';

在这里,您可以看到提供的方法与简单的
array\u值
方法之间的差异:

阵列:

$array['a'][0] = array('x' => 1, 'y' => 2, 'z' => 3);
$array['a'][5] = array('x' => 4, 'y' => 5, 'z' => 6);

$array['b'][1] = array('x' => 7, 'y' => 8, 'z' => 9);
$array['b'][7] = array('x' => 10, 'y' => 11, 'z' => 12);
deceze
的方式,以下是您的输出:

$array = array_map('array_values', $array);
print_r($array);

/* Output */

Array
(
    [a] => Array
        (
            [0] => Array
                (
                    [x] => 1
                    [y] => 2
                    [z] => 3
                )
            [1] => Array
                (
                    [x] => 4
                    [y] => 5
                    [z] => 6
                )
        )
    [b] => Array
        (
            [0] => Array
                (
                    [x] => 7
                    [y] => 8
                    [z] => 9
                )

            [1] => Array
                (
                    [x] => 10
                    [y] => 11
                    [z] => 12
                )
        )
)
如果只使用
数组_值
函数,则输出如下:

$array = array_values($array);
print_r($array);

/* Output */

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [x] => 1
                    [y] => 2
                    [z] => 3
                )
            [5] => Array
                (
                    [x] => 4
                    [y] => 5
                    [z] => 6
                )
        )
    [1] => Array
        (
            [1] => Array
                (
                    [x] => 7
                    [y] => 8
                    [z] => 9
                )
            [7] => Array
                (
                    [x] => 10
                    [y] => 11
                    [z] => 12
                )
        )
)

PHP本机函数为此而存在。看

只需这样做:
混合重置(数组和$array)

数组([0]=>apple[1]=>cherry)


数组([0]=>cherry[1]=>apple)

由于某种原因没有重置数组的键,只能使用
Array\u values
函数。@SSH您是否在数组上使用了它,正如这里所说的那样?不,这是问题所在,我认为这应该是“重置数组元素的键”,不需要使用数组映射:$ret=array\u值($ret);足以重置数字键我不知道是否记录了使用数组_值重置值,但应该记录。这确实有助于减少我写的行数:)检查这个答案:请务必阅读你链接到的手册<代码>重置执行其他操作。它只是将指针移动到数组的第一个元素。Topicstarter在默认状态0、1、2…N下放置关键点的搜索方式。
//...
array_multisort($result, SORT_DESC);
//...