Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

63 linhas
1.5 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wangxj
  5. * Date: 2017/5/27
  6. * Time: 18:10
  7. */
  8. namespace common\components;
  9. use yii\helpers\ArrayHelper;
  10. class zComponents
  11. {
  12. /**
  13. * User: wangxj
  14. *
  15. * 和ArrayHelper::map区别
  16. * 供dropDownList在<option >添加额外属性<option data-type='type1' >
  17. * $result = ArrayHelper::map($array, 'type', 'name', 'id')
  18. *
  19. * $array = [
  20. * ['id' => '123', 'name' => 'aaa', 'class' => 'x', 'type' => 'type1'],
  21. * ['id' => '124', 'name' => 'bbb', 'class' => 'x', 'type' => 'type1'],
  22. * ['id' => '345', 'name' => 'ccc', 'class' => 'y', 'type' => 'type2'],
  23. * ];
  24. *
  25. * // the result is:
  26. * // [
  27. * // '123' => [
  28. * // 'type' => 'type1',
  29. * // ],
  30. * // '124' => [
  31. * // 'type' => 'type1',
  32. * // ],
  33. * // '345' => [
  34. * // 'type' => 'type2',
  35. * // ],
  36. * // ]
  37. *
  38. * @param $array
  39. * @param $from
  40. * @param $to
  41. * @param null $group
  42. * @return array
  43. */
  44. public static function map($array, $from, $to, $group = null)
  45. {
  46. $result = [];
  47. foreach ($array as $element) {
  48. $key = ArrayHelper::getValue($element, $from);
  49. $value = ArrayHelper::getValue($element, $to);
  50. if ($group !== null) {
  51. $result[ArrayHelper::getValue($element, $group)][$key] = $value;
  52. } else {
  53. $result[$key] = $value;
  54. }
  55. }
  56. return $result;
  57. }
  58. }