从多维数组中的特定索引构建数组


Build array from specific indices in a multidimensional array

我将如何过滤掉包含从MySQL查询返回的行名称的零索引,然后将结果放回如下所示的数组中。

所需的示例数组:

array:1 [
  0 => array:10 [
    0 => array:2 [
      0 => "2016-01-06"
      1 => 10
    ]
    1 => array:2 [
      0 => "2016-01-12"
      1 => 15
    ]
  ]
]

从 MySQL 查询返回的数组:

array:1 [
  0 => array:10 [
    0 => array:2 [
      0 => "price_1"
      1 => 10
    ]
    1 => array:2 [
      0 => "day_1"
      1 => "2016-01-06"
    ]
    2 => array:2 [
      0 => "price_2"
      1 => 15
    ]
    3 => array:2 [
      0 => "day_2"
      1 => "2016-01-12"
    ]
  ]
]

你可以做这样的事情(假设$array是MySQL结果的输入数组,$output是我们转换后的结果数组):

<?php
$output = array_map(function($value) {
    return [$value[1][1], $value[0][1]];
}, $array);

下面是使用您的输入的示例:

php > var_dump($array);
array(1) {
  [0]=>
  array(4) {
    [0]=>
    array(2) {
      [0]=>
      string(7) "price_1"
      [1]=>
      int(10)
    }
    [1]=>
    array(2) {
      [0]=>
      string(5) "day_1"
      [1]=>
      string(10) "2016-01-06"
    }
    [2]=>
    array(2) {
      [0]=>
      string(7) "price_2"
      [1]=>
      int(15)
    }
    [3]=>
    array(2) {
      [0]=>
      string(5) "day_2"
      [1]=>
      string(10) "2016-01-12"
    }
  }
}
php > $output = array_map(function($value) { return [$value[1][1], $value[0][1]]; }, $array);
php > var_dump($output);                                                        array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(10) "2016-01-06"
    [1]=>
    int(10)
  }
}
php >