操作多维数组



>我有一个mysql查询,它在PHP中返回一个这样的数组

array(
    [0] -> ([cred_id],[date],[value]);
    [1] -> ([cred_id],[date],[value]);
    [2] -> ([cred_id],[date],[value]);
    [3] -> ([cred_id],[date],[value]);
    [4] -> ([cred_id],[date],[value]);
    [5] -> ([cred_id],[date],[value]);
    [6] -> ([cred_id],[date],[value]);
    [7] -> ([cred_id],[date],[value]);
    [8] -> ([cred_id],[date],[value]);
);

等等。对于不同的数组项,Cred_id可以是相同的。所以我想把这个数组变成这样的东西:

array(
[cred_id]->(([date],[value]),([date],[value]),([date],[value]))
[cred_id]->(([date],[value]),([date],[value]))
);

这样,如果我知道一个 [cred_id] 值,我可以在我从数据库中提取的所有日期-值对之间执行 foreach 循环。

是否有一个我可以使用的智能 php 函数,或者我是否必须像这样使用:

foreach ($creds as $cred){
    $new_creds[$cred['cred_id']][]= array($cred[date],$cred[value]);
}   

这实际上是我关于如何获得此结果的最聪明的想法?

除了使用

foreach 循环之外,您还可以使用如下所示的array_walkarray_map函数

演示

$output1 = array(); 
array_walk($array,function($item,$key) use (&$output1){
     $output1[$item['cred_id']][]=array($item['date'],$item['value']);     
});
// OR  
$output2 = array();
array_map(function($item) use (&$output2){
     $output2[$item['cred_id']][]=array($item['date'],$item['value']);
},$array);
print_r($output1);
print_r($output2);

相关内容

  • 没有找到相关文章

最新更新