Variant f_array_replace_recursive(int _argc, CVarRef array1, CArrRef _argv /* = null_array */) { getCheckedArray(array1); Array ret = Array::Create(); PointerSet seen; php_array_replace_recursive(seen, false, ret, arr_array1); assert(seen.empty()); for (ArrayIter iter(_argv); iter; ++iter) { CVarRef v = iter.secondRef(); getCheckedArray(v); php_array_replace_recursive(seen, false, ret, arr_v); assert(seen.empty()); } return ret; }
Variant f_array_merge_recursive(int _argc, CVarRef array1, CArrRef _argv /* = null_array */) { getCheckedArray(array1); Array ret = Array::Create(); PointerSet seen; php_array_merge_recursive(seen, false, ret, arr_array1); assert(seen.empty()); for (ArrayIter iter(_argv); iter; ++iter) { Variant v = iter.second(); if (!v.isArray()) { throw_bad_array_exception(); return uninit_null(); } CArrRef arr_v = v.asCArrRef(); php_array_merge_recursive(seen, false, ret, arr_v); assert(seen.empty()); } return ret; }