【发布时间】:2016-02-17 14:40:17
【问题描述】:
我觉得我错过了一些非常明显的东西,但是:
我有一个预定义数组的多维数组,其想法是命名子数组的命名子数组:
$masterArray = array();
$masterArray['one'] = array('x41', 'x42', 'x43', 'x44', 'x45', 'x46', 'x47', 'x48');
$masterArray['two'] = array('xC0', 'xC1', 'xC2', 'xC3', 'xC4', 'xC5', 'xC6', 'xC7');
$masterArray['tre'] = array('x2E', 'x2C', 'x3A', 'x3B', 'xA1', 'x21', 'xBF', 'x3F');
$masterArray['for'] = array('x5E', 'x60', 'xAF', 'xA8', 'xB4', 'xB8', '02B', '02C');
$masterArray['keep'] = array($masterArray['one'], $masterArray['two']);
$masterArray['dump'] = array($masterArray['tre'], $masterArray['for']);
$masterArray['all'] = array($masterArray['keep'], $masterArray['dump']);
但是,如果我执行print_r($masterArray['all']),它会输出多维数组,但所有键都消失了:
Array
(
[0] => Array
(
[0] => Array
(
[0] => x41
[1] => x42
[2] => x43
[3] => x44
[etc.]
如果我执行print_r($masterArray),我会按预期获得所有键,除了keep、dump 或all 键,它们恢复为数字索引。
我很肯定我今天过得特别愚蠢,但同样值得注意的是,我使用对象进行了快速测试,得到了相同的结果。我做错了什么?
【问题讨论】:
-
$masterArray['one']是array('x41', 'x42', 'x43', 'x44', 'x45', 'x46', 'x47', 'x48')。在您的keep声明中将一个替换为另一个。不知道你期望什么样的键......?! -
请你提供一个期望结果的例子吗?
-
@deceze 是的,我有一个特别愚蠢的时刻,并且由于某种原因,尽管没有在所述数组中明确声明键,但由于某种原因,当我将它们推入父数组时,我期望数组键被保留。这就是我尝试编写代码解决头痛的结果。
标签: php arrays multidimensional-array associative-array