当前位置:Gxlcms > PHP教程 > php数组遍历后重新组装,请教方法

php数组遍历后重新组装,请教方法

时间:2021-07-01 10:21:17 帮助过:24人阅读

如图代码,组装成下面这种格式,有没有什么办法,数组内长度不定

  1. <code>$_POST['huodong']=array(
  2. 'shenbing',
  3. 'duobao',
  4. 'ceshi'
  5. );
  6. $_POST['sttime']=array(
  7. '2016-11-07 00:00:00',
  8. '2016-11-08 00:00:00',
  9. '2016-11-09 00:00:00'
  10. );
  11. $_POST['edtime']=array(
  12. '2016-11-10 00:00:00',
  13. '2016-11-11 00:00:00',
  14. '2016-11-12 00:00:00'
  15. );
  16. $_POST['sourcelmt']=array(
  17. array(
  18. 'xiaomi_uku_and',
  19. 'uc_uku_and',
  20. 'qq_uku_and'
  21. ),
  22. array(
  23. 'xiaomi_uku_and',
  24. 'qq_uku_and'
  25. ),
  26. array(
  27. 'uc_uku_and',
  28. )
  29. );</code>

现在想组装成这种格式的:

  1. <code>array(
  2. 'shenbing'=>array(
  3. 'sttime'=>'2016-11-07 00:00:00',
  4. 'edtime'=>'2016-11-10 00:00:00',
  5. sourcelmt=array(
  6. 'xiaomi_uku_and',
  7. 'uc_uku_and',
  8. 'qq_uku_and'
  9. ),
  10. ),
  11. 'duobao'=>array(
  12. 'sttime'=>'2016-11-08 00:00:00',
  13. 'edtime'=>'2016-11-11 00:00:00',
  14. sourcelmt=array(
  15. 'xiaomi_uku_and',
  16. 'qq_uku_and'
  17. ),
  18. ),
  19. 'ceshi'=>array(
  20. 'sttime'=>'2016-11-09 00:00:00',
  21. 'edtime'=>'2016-11-12 00:00:00',
  22. sourcelmt=array(
  23. uc_uku_and
  24. ),
  25. ),
  26. );</code>

请问有什么好的办法?感谢~

回复内容:

如图代码,组装成下面这种格式,有没有什么办法,数组内长度不定

  1. <code>$_POST['huodong']=array(
  2. 'shenbing',
  3. 'duobao',
  4. 'ceshi'
  5. );
  6. $_POST['sttime']=array(
  7. '2016-11-07 00:00:00',
  8. '2016-11-08 00:00:00',
  9. '2016-11-09 00:00:00'
  10. );
  11. $_POST['edtime']=array(
  12. '2016-11-10 00:00:00',
  13. '2016-11-11 00:00:00',
  14. '2016-11-12 00:00:00'
  15. );
  16. $_POST['sourcelmt']=array(
  17. array(
  18. 'xiaomi_uku_and',
  19. 'uc_uku_and',
  20. 'qq_uku_and'
  21. ),
  22. array(
  23. 'xiaomi_uku_and',
  24. 'qq_uku_and'
  25. ),
  26. array(
  27. 'uc_uku_and',
  28. )
  29. );</code>

现在想组装成这种格式的:

  1. <code>array(
  2. 'shenbing'=>array(
  3. 'sttime'=>'2016-11-07 00:00:00',
  4. 'edtime'=>'2016-11-10 00:00:00',
  5. sourcelmt=array(
  6. 'xiaomi_uku_and',
  7. 'uc_uku_and',
  8. 'qq_uku_and'
  9. ),
  10. ),
  11. 'duobao'=>array(
  12. 'sttime'=>'2016-11-08 00:00:00',
  13. 'edtime'=>'2016-11-11 00:00:00',
  14. sourcelmt=array(
  15. 'xiaomi_uku_and',
  16. 'qq_uku_and'
  17. ),
  18. ),
  19. 'ceshi'=>array(
  20. 'sttime'=>'2016-11-09 00:00:00',
  21. 'edtime'=>'2016-11-12 00:00:00',
  22. sourcelmt=array(
  23. uc_uku_and
  24. ),
  25. ),
  26. );</code>

请问有什么好的办法?感谢~

  1. <code>$result = array();
  2. foreach($_POST['huodong'] as $first_key => $id) {
  3. // 此处的 '' 和 array() 是作为默认值
  4. foreach(array('sttime'=>'','edtime'=>'','sourcelmt'=>array()) as $second_key => $val) {
  5. $result[$id][$second_key] = isset($_POST[$second_key][$first_key]) ? $_POST[$second_key][$first_key] : $val;
  6. }
  7. }
  8. print_r($result);</code>

根据 下标取不同 数组对应下标的值就行了啊

$result = array();
for($i=0;$i

  1. <code>$result[$_POST['huodong'][$i]]=array(
  2. 'sttime'=>$_POST['sttime'][$i],
  3. 'edtime'=>$_POST['edtime'][$i],
  4. 'sourcelmt'=>$_POST['sourcelmt'][$i],
  5. );</code>

}
print_r($result);

人气教程排行