Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays - Fatal编程技术网

Php 保持数组的顺序

Php 保持数组的顺序,php,arrays,Php,Arrays,我有一个可以包含零值的数组 $array = array(3=> 1000, 5=> 0, 6=> 5000, 7 => 0); 由于使用该数组的代码无法管理设置为0的字段,因此我需要删除它们。(我想将值为0的字段存储在临时数组中): 在核心代码运行之后,我想把值为0的字段放回原来的位置 核心代码返回如下数组: $output = array(3 => 10, 6 => 50); 我想添加旧密钥并获得以下信息: $output = array(3 =>

我有一个可以包含零值的数组

$array = array(3=> 1000, 5=> 0, 6=> 5000, 7 => 0);
由于使用该数组的代码无法管理设置为0的字段,因此我需要删除它们。(我想将值为0的字段存储在临时数组中):

在核心代码运行之后,我想把值为0的字段放回原来的位置

核心代码返回如下数组:

$output = array(3 => 10, 6 => 50);
我想添加旧密钥并获得以下信息:

$output = array(3 => 10, 5 => 0, 6 => 50, 7 => 0);
在这种情况下,只需使用删除0值即可:

$old_array = array(3 => 1000, 5=> 0, 6=> 5000, 7 => 0);
$new_array = array_filter($old_array);

// Now: $new_array = Array ( [3] => 1000 [6] => 5000 )
然后,做你想做的事情
$new\u array

// Core code: Divide each element by 100:
$new_array = array(3 => 10, 6 => 50);
然后使用后跟获得所需阵列:

$array = $new_array + $old_array;
ksort($array);

// Now: Array ( [3] => 10 [5] => 0 [6] => 50 [7] => 0 )
注意:如果
数组([3]=>10[6]=>50[5]=>0[7]=>0)
是可接受的(即所有与所需数组相同的键值对,只是顺序不同),则可以跳过对ksort的调用。

在这种情况下,只需使用以下命令即可删除0值:

$old_array = array(3 => 1000, 5=> 0, 6=> 5000, 7 => 0);
$new_array = array_filter($old_array);

// Now: $new_array = Array ( [3] => 1000 [6] => 5000 )
然后,做你想做的事情
$new\u array

// Core code: Divide each element by 100:
$new_array = array(3 => 10, 6 => 50);
然后使用后跟获得所需阵列:

$array = $new_array + $old_array;
ksort($array);

// Now: Array ( [3] => 10 [5] => 0 [6] => 50 [7] => 0 )

注意:如果
Array([3]=>10[6]=>50[5]=>0[7]=>0)
是可接受的(即所有与所需数组相同的键值对,只是顺序不同),则可以跳过对ksort的调用。

尝试了Array\u merge($output,$zero\u Array)?保持原始数组的原样,然后创建该数组的副本,但不包含要在代码中使用的0值。当您的代码使用完该数组后,您可以取消设置()该数组,并且您仍然可以使用原始数组来执行其他任何需要执行的操作。尝试了数组合并($output,$zero\u array)?保持原始数组的原样,然后创建该数组的副本,而不在代码中使用0值。当代码使用完该数组后,您可以取消设置()该数组,并且无论您需要做什么,都可以保留原始数组。