ArrayUtil

类名: Imi\Util\ArrayUtil

数组帮助类

方法

remove

从数组中移除一个元素

  1. $array = [1, 2, 3, 4, 5];
  2. // 删除一个元素:[1, 3, 4, 5]
  3. var_dump(ArrayUtil::remove($array, 2));
  4. // 删除多个元素:[1, 5]
  5. var_dump(ArrayUtil::remove($array, 2, 3, 4));

recursiveMerge

多维数组递归合并,具体效果请看下面代码及运行结果

  1. $array1 = [
  2. 'a' => [
  3. 'b1' => [
  4. 'c1' => 1,
  5. ],
  6. 'b2' => [
  7. 'c2' => 2,
  8. ]
  9. ]
  10. ];
  11. $array2 = [
  12. 'a' => [
  13. 'b1' => [
  14. 'c1' => 3,
  15. ]
  16. ]
  17. ];
  18. // array_merge
  19. print_r(array_merge($array1, $array2));
  20. // +
  21. print_r($array1 + $array2);
  22. // ArrayUtil::recursiveMerge
  23. print_r(ArrayUtil::recursiveMerge($array1, $array2));

运行结果:

  1. Array
  2. (
  3. [a] => Array
  4. (
  5. [b1] => Array
  6. (
  7. [c1] => 3
  8. )
  9. )
  10. )
  11. Array
  12. (
  13. [a] => Array
  14. (
  15. [b1] => Array
  16. (
  17. [c1] => 1
  18. )
  19. [b2] => Array
  20. (
  21. [c2] => 2
  22. )
  23. )
  24. )
  25. Array
  26. (
  27. [a] => Array
  28. (
  29. [b1] => Array
  30. (
  31. [c1] => 3
  32. )
  33. [b2] => Array
  34. (
  35. [c2] => 2
  36. )
  37. )
  38. )

columnToKey

将二维数组第二纬某key变为一维的key

  1. $array = [
  2. ['id'=>1,'name'=>'a'],
  3. ['id'=>2,'name'=>'b'],
  4. ['id'=>3,'name'=>'c'],
  5. ];
  6. // 保留原始字段
  7. print_r(ArrayUtil::columnToKey($array, 'id'));
  8. // 去除原始字段
  9. print_r(ArrayUtil::columnToKey($array, 'id', false));

运行结果:

  1. Array
  2. (
  3. [1] => Array
  4. (
  5. [id] => 1
  6. [name] => a
  7. )
  8. [2] => Array
  9. (
  10. [id] => 2
  11. [name] => b
  12. )
  13. [3] => Array
  14. (
  15. [id] => 3
  16. [name] => c
  17. )
  18. )
  19. Array
  20. (
  21. [1] => Array
  22. (
  23. [name] => a
  24. )
  25. [2] => Array
  26. (
  27. [name] => b
  28. )
  29. [3] => Array
  30. (
  31. [name] => c
  32. )
  33. )

isAssoc

判断数组是否为关联数组

  1. $array = [1, 2, 3];
  2. // false
  3. var_dump(ArrayUtil::isAssoc($array));
  4. $array = [1, 'b'=>2, 3];
  5. // true
  6. var_dump(ArrayUtil::isAssoc($array));