Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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,我想根据第一个主数组对所有php数组进行排序 这是我要用于对所有其他数组进行排序的主数组: Array ( [0] => 10 [1] => 14 [2] => 15 [3] => 20 [4] => 21 [5] => 24 [6] => 25 [7] => 28 [8] => 30 [9] => 45 [10] => 60 [11] => 90 [12] => 120 [13] => 150 [14] =&

我想根据第一个主数组对所有php数组进行排序

这是我要用于对所有其他数组进行排序的主数组:

Array (

[0] => 10
[1] => 14
[2] => 15
[3] => 20
[4] => 21
[5] => 24
[6] => 25
[7] => 28
[8] => 30
[9] => 45
[10] => 60
[11] => 90
[12] => 120
[13] => 150
[14] => 180
[15] => 210
[16] => 240
[17] => 270
[18] => 365

)
这是需要排序的数组:

Array (

[0] => Array
    (
        [14] => 49.21
        [20] => 71.04
        [25] => 89.58
        [30] => 100.00
    )

[1] => Array
    (
        [180] => 412.00
        [150] => 347.00
        [120] => 285.00
        [90] => 224.00
        [60] => 165.00
        [30] => 100.00
        [14] => 47.00
    )
)

我需要最终结果如下所示:

Array (

[0] => Array
    (
        [10] => n/a
        [14] => 49.21
        [15] => n/a
        [20] => 71.04
        [21] => n/a
        [24] => n/a
        [25] => 89.58
        [28] => n/a
        [30] => 100.00
        [45] => n/a
        [60] => n/a
        [90] => n/a
        [120] => n/a
        [150] => n/a
        [180] => n/a
        [210] => n/a
        [240] => n/a
        [270] => n/a
        [365] => n/a
    )

[1] => Array
    (
        [10] => n/a
        [14] => 71.04
        [15] => n/a
        [20] => n/a
        [21] => n/a
        [24] => n/a
        [25] => n/a
        [28] => n/a
        [30] => 100.00
        [45] => n/a
        [60] => 165.00
        [90] => 224.00
        [120] => 285.00
        [150] => 347.00
        [180] => 412.00
        [210] => n/a
        [240] => n/a
        [270] => n/a
        [365] => n/a
    )

    )

谢谢。

如果我从您的问题中理解正确,您希望使两个数组的长度相同,并将不在其中的键设置为
“n/a”

带有
数组的变量\u merge
():

结果:

array(2) {
  [0]=>
  array(23) {
    [0]=>
    string(3) "n/a"
    [1]=>
    string(3) "n/a"
    [2]=>
    string(3) "n/a"
    [3]=>
    string(3) "n/a"
    [4]=>
    string(3) "n/a"
    [5]=>
    string(3) "n/a"
    [6]=>
    string(3) "n/a"
    [7]=>
    string(3) "n/a"
    [8]=>
    string(3) "n/a"
    [9]=>
    string(3) "n/a"
    [10]=>
    string(3) "n/a"
    [11]=>
    string(3) "n/a"
    [12]=>
    string(3) "n/a"
    [13]=>
    string(3) "n/a"
    [14]=>
    string(3) "n/a"
    [15]=>
    string(3) "n/a"
    [16]=>
    string(3) "n/a"
    [17]=>
    string(3) "n/a"
    [18]=>
    string(3) "n/a"
    [19]=>
    string(5) "49.21"
    [20]=>
    string(5) "71.04"
    [21]=>
    string(5) "89.58"
    [22]=>
    string(6) "100.00"
  }
  [1]=>
  array(26) {
    [0]=>
    string(3) "n/a"
    [1]=>
    string(3) "n/a"
    [2]=>
    string(3) "n/a"
    [3]=>
    string(3) "n/a"
    [4]=>
    string(3) "n/a"
    [5]=>
    string(3) "n/a"
    [6]=>
    string(3) "n/a"
    [7]=>
    string(3) "n/a"
    [8]=>
    string(3) "n/a"
    [9]=>
    string(3) "n/a"
    [10]=>
    string(3) "n/a"
    [11]=>
    string(3) "n/a"
    [12]=>
    string(3) "n/a"
    [13]=>
    string(3) "n/a"
    [14]=>
    string(3) "n/a"
    [15]=>
    string(3) "n/a"
    [16]=>
    string(3) "n/a"
    [17]=>
    string(3) "n/a"
    [18]=>
    string(3) "n/a"
    [19]=>
    string(6) "412.00"
    [20]=>
    string(6) "347.00"
    [21]=>
    string(6) "285.00"
    [22]=>
    string(6) "224.00"
    [23]=>
    string(6) "165.00"
    [24]=>
    string(6) "100.00"
    [25]=>
    string(5) "47.00"
  }
}
array(2) {
  [0]=>
  array(19) {
    [10]=>
    string(3) "n/a"
    [14]=>
    string(5) "49.21"
    [15]=>
    string(3) "n/a"
    [20]=>
    string(5) "71.04"
    [21]=>
    string(3) "n/a"
    [24]=>
    string(3) "n/a"
    [25]=>
    string(5) "89.58"
    [28]=>
    string(3) "n/a"
    [30]=>
    string(6) "100.00"
    [45]=>
    string(3) "n/a"
    [60]=>
    string(3) "n/a"
    [90]=>
    string(3) "n/a"
    [120]=>
    string(3) "n/a"
    [150]=>
    string(3) "n/a"
    [180]=>
    string(3) "n/a"
    [210]=>
    string(3) "n/a"
    [240]=>
    string(3) "n/a"
    [270]=>
    string(3) "n/a"
    [365]=>
    string(3) "n/a"
  }
  [1]=>
  array(19) {
    [10]=>
    string(3) "n/a"
    [14]=>
    string(5) "47.00"
    [15]=>
    string(3) "n/a"
    [20]=>
    string(3) "n/a"
    [21]=>
    string(3) "n/a"
    [24]=>
    string(3) "n/a"
    [25]=>
    string(3) "n/a"
    [28]=>
    string(3) "n/a"
    [30]=>
    string(6) "100.00"
    [45]=>
    string(3) "n/a"
    [60]=>
    string(6) "165.00"
    [90]=>
    string(6) "224.00"
    [120]=>
    string(6) "285.00"
    [150]=>
    string(6) "347.00"
    [180]=>
    string(6) "412.00"
    [210]=>
    string(3) "n/a"
    [240]=>
    string(3) "n/a"
    [270]=>
    string(3) "n/a"
    [365]=>
    string(3) "n/a"
  }
}

带有映射函数()的变量:

结果:

array(2) {
  [0]=>
  array(23) {
    [0]=>
    string(3) "n/a"
    [1]=>
    string(3) "n/a"
    [2]=>
    string(3) "n/a"
    [3]=>
    string(3) "n/a"
    [4]=>
    string(3) "n/a"
    [5]=>
    string(3) "n/a"
    [6]=>
    string(3) "n/a"
    [7]=>
    string(3) "n/a"
    [8]=>
    string(3) "n/a"
    [9]=>
    string(3) "n/a"
    [10]=>
    string(3) "n/a"
    [11]=>
    string(3) "n/a"
    [12]=>
    string(3) "n/a"
    [13]=>
    string(3) "n/a"
    [14]=>
    string(3) "n/a"
    [15]=>
    string(3) "n/a"
    [16]=>
    string(3) "n/a"
    [17]=>
    string(3) "n/a"
    [18]=>
    string(3) "n/a"
    [19]=>
    string(5) "49.21"
    [20]=>
    string(5) "71.04"
    [21]=>
    string(5) "89.58"
    [22]=>
    string(6) "100.00"
  }
  [1]=>
  array(26) {
    [0]=>
    string(3) "n/a"
    [1]=>
    string(3) "n/a"
    [2]=>
    string(3) "n/a"
    [3]=>
    string(3) "n/a"
    [4]=>
    string(3) "n/a"
    [5]=>
    string(3) "n/a"
    [6]=>
    string(3) "n/a"
    [7]=>
    string(3) "n/a"
    [8]=>
    string(3) "n/a"
    [9]=>
    string(3) "n/a"
    [10]=>
    string(3) "n/a"
    [11]=>
    string(3) "n/a"
    [12]=>
    string(3) "n/a"
    [13]=>
    string(3) "n/a"
    [14]=>
    string(3) "n/a"
    [15]=>
    string(3) "n/a"
    [16]=>
    string(3) "n/a"
    [17]=>
    string(3) "n/a"
    [18]=>
    string(3) "n/a"
    [19]=>
    string(6) "412.00"
    [20]=>
    string(6) "347.00"
    [21]=>
    string(6) "285.00"
    [22]=>
    string(6) "224.00"
    [23]=>
    string(6) "165.00"
    [24]=>
    string(6) "100.00"
    [25]=>
    string(5) "47.00"
  }
}
array(2) {
  [0]=>
  array(19) {
    [10]=>
    string(3) "n/a"
    [14]=>
    string(5) "49.21"
    [15]=>
    string(3) "n/a"
    [20]=>
    string(5) "71.04"
    [21]=>
    string(3) "n/a"
    [24]=>
    string(3) "n/a"
    [25]=>
    string(5) "89.58"
    [28]=>
    string(3) "n/a"
    [30]=>
    string(6) "100.00"
    [45]=>
    string(3) "n/a"
    [60]=>
    string(3) "n/a"
    [90]=>
    string(3) "n/a"
    [120]=>
    string(3) "n/a"
    [150]=>
    string(3) "n/a"
    [180]=>
    string(3) "n/a"
    [210]=>
    string(3) "n/a"
    [240]=>
    string(3) "n/a"
    [270]=>
    string(3) "n/a"
    [365]=>
    string(3) "n/a"
  }
  [1]=>
  array(19) {
    [10]=>
    string(3) "n/a"
    [14]=>
    string(5) "47.00"
    [15]=>
    string(3) "n/a"
    [20]=>
    string(3) "n/a"
    [21]=>
    string(3) "n/a"
    [24]=>
    string(3) "n/a"
    [25]=>
    string(3) "n/a"
    [28]=>
    string(3) "n/a"
    [30]=>
    string(6) "100.00"
    [45]=>
    string(3) "n/a"
    [60]=>
    string(6) "165.00"
    [90]=>
    string(6) "224.00"
    [120]=>
    string(6) "285.00"
    [150]=>
    string(6) "347.00"
    [180]=>
    string(6) "412.00"
    [210]=>
    string(3) "n/a"
    [240]=>
    string(3) "n/a"
    [270]=>
    string(3) "n/a"
    [365]=>
    string(3) "n/a"
  }
}

假设初始数组为$source,$todo是包含两个子集的第二个数组,则:

$keys = array_flip($todo);
$keys = array_map(function() { return 'n/a'; }, $keys); // set all values to be "n/a";

foreach($todo as $idx => $do) {
   $todo[$idx] = $do + $keys; // merge without renumbering.
}

在我看来不完全像是分类。你能解释一下你想做什么吗?在我看来,这就像用未使用的键填充数组,然后按此键排序(可以通过
ksort
)我也考虑过数组联合,但
$todo
的键顺序没有保留,而是添加到后面。无论如何都不能成为问题。这是正确的,但很容易在问题出现后对其进行排序()。