首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在PHP中分解数组多维

如何在PHP中分解数组多维
EN

Stack Overflow用户
提问于 2019-06-16 15:07:23
回答 2查看 32关注 0票数 0

我在详细说明数组编号时遇到了一个问题,如下所示

代码语言:javascript
运行
复制
array (size=3)
  0 => 
    array (size=2)
      'um' => float 1000
      'kali' => string '2' (length=1)
  1 => 
    array (size=2)
      'um' => float 2000
      'kali' => string '5' (length=2)
  2 => 
    array (size=2)
      'um' => float 5000
      'kali' => string '1' (length=1)

如果最终结果如下,我该怎么办?

代码语言:javascript
运行
复制
array (size=7)
  0 => 
    array (size=2)
      'um' => float 1000
      'kali' => string '1' (length=1)
  1 => 
    array (size=2)
      'um' => float 1000
      'kali' => string '2' (length=1)
  2 => 
    array (size=2)
      'um' => float 2000
      'kali' => string '3' (length=1)
  3 => 
    array (size=2)
      'um' => float 2000
      'kali' => string '4' (length=1)
  4 => 
    array (size=2)
      'um' => float 2000
      'kali' => string '5' (length=1)
  5 => 
    array (size=2)
      'um' => float 2000
      'kali' => string '6' (length=1)
  6 => 
    array (size=2)
      'um' => float 2000
      'kali' => string '7' (length=1)
  7 => 
    array (size=2)
      'um' => float 5000
      'kali' => string '8' (length=1)

String ['kali']循环的次数与前一个数组一样多

例如:['kali'] = 2循环2次,['kali'] = 5循环5次等等。

请开导一下这个案例

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-16 15:18:35

简单的foreach循环可以这样做:

代码语言:javascript
运行
复制
$cnt = 1;
foreach($arr as $e) {
    for($i = 0; $i < $e["kali"]; $i++)
        $res[] = array('um' => $e['um'], 'kali' => $cnt++);
}

现场示例:3v4l

票数 1
EN

Stack Overflow用户

发布于 2019-06-16 15:18:01

您可以使用array_walk来实现此目的

代码语言:javascript
运行
复制
$arr = [
  ['um' => 1000, 'kali' => '2'],
  ['um' => 2000, 'kali' => '5'],
  ['um' => 5000, 'kali' => '1']
];
$res = [];
array_walk($arr, function($v, $k) use (&$res){
  $condition = ($v['kali'] == 5) ? 4 : ($v['kali']);
  for($i=1;$i <= $condition;$i++){
    $res[] = ['um' => $v['um'], 'kali' => count($res)+1]; 
  }
}); 

DEMO

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56616843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档