严谨地说/最佳实践:我是否需要设置每个“更深的嵌套子阵列”,还是只能访问它?我是否需要在PHP中初始化多维数组的每个键?
//so do I need to do this:
if(!isset($multiArray[$newKey])) $multiArray[$newKey] = array();
//before I can do this?
$multiArray[$newKey][] = 'somevalue';
严谨地说/最佳实践:我是否需要设置每个“更深的嵌套子阵列”,还是只能访问它?我是否需要在PHP中初始化多维数组的每个键?
//so do I need to do this:
if(!isset($multiArray[$newKey])) $multiArray[$newKey] = array();
//before I can do this?
$multiArray[$newKey][] = 'somevalue';
严格来说不,PHP会在将值推给它之前创建新的数组,没有任何问题。
最佳做法?这可能是基于个人意见的,我会说为了可读性首先创建数组,并且逻辑上合理。如果其他开发人员拿起您的代码,则可能不是很明显,您正在创建新数组,而不是推送到现有数组。
不需要在PHP中初始化变量,但这是一个非常好的做法。未初始化的变量具有其类型的默认值,取决于使用它们的上下文 - 布尔值默认为FALSE,整数和浮点数默认为零,字符串(例如,在echo中使用)设置为空字符串,并且数组变为空阵列。
来源:PHP手册http://fr2.php.net/manual/en/function.array-multisort.php