PHP-在数组中重新排列键和值
我有这个问题(它正在工作): 查询结果如下:PHP-在数组中重新排列键和值,php,arrays,Php,Arrays,我有这个问题(它正在工作): 查询结果如下: [0]=> array(2) { ["newFile"]=> string(2) "12" ["dateAdded"]=> string(10) "2016-03-23" } [1]=> array(2) { ["newFile"]=> string(1) "2" ["dateAdded"]=> string(10) "2016-04-
[0]=>
array(2) {
["newFile"]=>
string(2) "12"
["dateAdded"]=>
string(10) "2016-03-23"
}
[1]=>
array(2) {
["newFile"]=>
string(1) "2"
["dateAdded"]=>
string(10) "2016-04-01"
}
[2]=>
array(2) {
["newFile"]=>
string(2) "10"
["dateAdded"]=>
string(10) "2016-04-22"
}....
我需要做的是使dateAdded成为一个键,newFile(计数)成为一个值。像这样:
[
'2016-03-23' => '12',
'2016-04-01' => '2',
'2016-04-22' => '10'
]
这在查询中是可能的吗?或者有更有效的方法,然后使用foreach循环?您需要一个foreach循环
$res = [];
foreach($array as $value){
$res[$value['dateAdded']] = $value['newFile'];
}
不,我不认为Mysql查询可以做到这一点。您可以使用
foreach
进行以下操作:
$output = array();
foreach($output as $val){
$output[ $val['dateAdded'] ] = $val['newFile'];
}
print_r($output);
尝试下面的代码,这使用foreach循环,因为我认为查询不够,但我可能错了
$myarray = array();
foreach($yourarray as $key => $value)
{
$myarray[$value['dateAdded']] = $value['newfile'];
}
print_r($myarray); //tocheack
它对我有用。您可以删除$key,只使用value
这样做的目的是获取一个空数组,从旧数组中给它一个自定义键,它使用该名称,因为它是一个关联数组。然后,您可以使用=运算符指定一个值,并再次使用关联数组
如果你需要澄清,你可以向我寻求更多帮助
Goodluck meyt您可以使用带有闭包的
数组映射
:
<?php
$r = array(
array('idx'=>22, 'val'=>55),
array('idx'=>33, 'val'=>77),
array('idx'=>44, 'val'=>44),
);
$result = array();
array_map(function($val) use (&$result) {
$result[$val['idx']] = $val['val'];
}, $r);
print_r($result);
不需要foreach,只需使用
array_column-从输入数组中的单个列返回值
$final_array = array_column($result, 'newFile', 'dateAdded');
array_column()返回由column_键标识的单个输入列的值。可选地,可以提供索引键,以通过来自输入数组的索引键列的值来索引返回数组中的值
$final_array = array_column($result, 'newFile', 'dateAdded');
它可以很容易地使用:$result=array\u column($result,'newFile','dateAdded')代码>