【问题标题】:Build array from specific indices in a multidimensional array从多维数组中的特定索引构建数组
【发布时间】:2016-04-22 10:26:57
【问题描述】:
如何过滤掉包含从 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"
]
]
]
【问题讨论】:
标签:
php
mysql
arrays
multidimensional-array
【解决方案1】:
您可以执行以下操作(假设 $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 >