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')