我正在开发一个有Arr助手类的项目,我很好奇:这样做是否有好处:
/**
* Sets an array value
*
* @param array $array
* @param string $path
* @param mixed $value
*
* @return void
*/
public static function set(array &$array, $path, $value)
{
$segments = explode('.', $path);
while (count($segments) > 1) {
$segment = array_shift($segments);
if ( ! isset( $array[$segment] ) || ! is_array($array[$segment])) {
$array[$segment] = [];
}
$array =& $array[$segment];
}
$array[array_shift($segments)] = $value;
}
Arr::set($data['stories'], 'fields.age', '3');
通过这个:
$data['stories']['fields']['age'] = '3';
或者有更好,更快的方式吗?
答案 0 :(得分:0)
该功能更容易输入 - 您不必制作这么多括号和引号。它使事情变得更容易。
对于性能:如果使用普通语法设置数组值,则速度更快,因为您不必在之前分解路径或检查是否存在。但这需要的时间不多。