将多维数组存储为对象变量,向数组添加其他键

时间:2010-12-20 20:54:48

标签: php oop object multidimensional-array

所以我有一个存储在对象中的多维数组。我想为这个数组添加额外的键。

这就是我所拥有的:

$object->pathsArray = array(
    "key1" => array('path' => '/some/path/to/some/file.php', 'action' => 'index'),
    "key2" => array('path' => '/some/path/to/some/class.php', 'action' => 'method2')
);

以下是我认为会起作用的但却没有:

$object->pathsArray['key3'] = array('path' => '/some/path/to/some/method/or/script.php', 'action' => 'method3');

我的第一个解决方法:

$newPathsArray = array("key3" => array('path' => '/some/path/to/some/method/or/script.php', 'action' => 'method3'));   
$object->pathsArray = array_merge($object->pathsArray, $newPathsArray);

应该采用的另一种解决方法:

$tempPathsArray = $object->pathsArray;
$tempPathsArray['key3'] = array('path' => '/some/path/to/some/method/or/script.php', 'action' => 'method3');
$object->pathsArray = $tempPathsArray;

所以我的问题:是否有更简单的语法(即:一行解决方案)或者我被迫引入了一个temp。变量,追加到那个然后合并/重新赋值给对象?

1 个答案:

答案 0 :(得分:0)

很抱歉写一个答案,但我无法发表评论。 我认为将属性设为公开只是为了通过这种方式使用它是不正确的。正确的事情应该是让一个setter填充它,而不是为此修改类设计。