加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php - 操纵多维数组

发布时间:2022-10-20 14:32:00 所属栏目:PHP教程 来源:互联网
导读:
我有一个mysql查询,它在PHP中返回一个像这样的数组
array(
[0] -> ([cred_id],[date],[value]);
[1] -> ([cred_id],[date],[value]);
[2] -> ([cred_id],[date],[value]);

php - 操纵多维数组,第1张

我有一个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功能PHP多维数组,或者我必须使用这样的foreach:

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

这实际上是我如何获得这个结果的最明智的想法?

最佳答案:

1 个答案:

答案 0 :(得分:0)

除了使用foreach进行循环外,您还可以使用array_walk或array_map功能,如下所示

Demo

$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);

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!