You are here

public static function Helper::array_merge__save_numeric_keys__recursive in Anti Spam by CleanTalk 9.1.x

Same name and namespace in other branches
  1. 8.4 src/lib/Cleantalk/Common/Helper.php \Cleantalk\Common\Helper::array_merge__save_numeric_keys__recursive()

* Merging arrays without reseting numeric keys recursive * *

Parameters

array $arr1 One-dimentional array: * @param array $arr2 One-dimentional array * * @return array Merged array

File

src/lib/Cleantalk/Common/Helper.php, line 972

Class

Helper
CleanTalk Helper class. Compatible with any CMS.

Namespace

Cleantalk\Common

Code

public static function array_merge__save_numeric_keys__recursive($arr1, $arr2) {
  foreach ($arr2 as $key => $val) {

    // Array | array => array
    if (isset($arr1[$key]) && is_array($arr1[$key]) && is_array($val)) {
      $arr1[$key] = self::array_merge__save_numeric_keys__recursive($arr1[$key], $val);

      // Scalar | array => array
    }
    elseif (isset($arr1[$key]) && !is_array($arr1[$key]) && is_array($val)) {
      $tmp = $arr1[$key] = $arr1[$key] = $val;
      $arr1[$key][] = $tmp;

      // array  | scalar => array
    }
    elseif (isset($arr1[$key]) && is_array($arr1[$key]) && !is_array($val)) {
      $arr1[$key][] = $val;

      // scalar | scalar => scalar
    }
    else {
      $arr1[$key] = $val;
    }
  }
  return $arr1;
}