本文整理汇总了PHP中Illuminate\Support\Arr::macro方法的典型用法代码示例。如果您正苦于以下问题:PHP Arr::macro方法的具体用法?PHP Arr::macro怎么用?PHP Arr::macro使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Illuminate\Support\Arr
的用法示例。
在下文中一共展示了Arr::macro方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: function
* @author Daniel <daniel (at) danielsmedegaardbuus (dot) dk>
* @author Gabriel Sobrinho <gabriel (dot) sobrinho (at) gmail (dot) com>
*/
Arr::macro('merge_distinct', function (array $array1, array $array2) {
$merged = $array1;
foreach ($array2 as $key => &$value) {
if (is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {
$merged[$key] = Arr::merge_distinct($merged[$key], $value);
} else {
$merged[$key] = $value;
}
}
return $merged;
});
/**
* Combination of array_merge and array_merge_recursive, does merge news keys into an existing array, but
* overrides values instead of creating arrays from duplicate values.
*
* this is the splat version of Arr::merge_distinct which can only handle two input arrays.
*
* @return array
*/
Arr::macro('merge', function () {
$result = [];
$args = func_get_args();
$args_limit = func_num_args();
for ($i = 0; $i < $args_limit; $i++) {
$result = Arr::merge_distinct($result, $args[$i]);
}
return $result;
});
示例2: function
<?php
namespace Propaganistas\LaravelHelperMacros\Macros;
use Illuminate\Support\Arr;
if (!Arr::hasMacro('expand')) {
/**
* Expands a dotted associative array. The inverse of Arr::dot().
*
* @param array $array
* @return array
*/
Arr::macro('expand', function (array $array) {
$return = [];
foreach ($array as $key => $value) {
array_set($return, $key, $value);
}
return $return;
});
}