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值。当代码使用完该数组后,您可以取消设置()该数组,并且无论您需要做什么,都可以保留原始数组。