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

php - 操纵多维数组

发布时间:2022-11-04 11:07:07 所属栏目:PHP教程 来源:
导读:  我有一个mysql查询,它在PHP中返回一个像这样的数组

  array(
   [0] -> ([cred_id],[date],[value]);
   [1] -> ([cred_id],[date],[value]);
   [2] -> ([cred_id],[date],[value]);
  我有一个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);
 

(编辑:开发网_新乡站长网)

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