【发布时间】:2020-06-19 09:02:12
【问题描述】:
所以我在遍历字符串并将其字符作为索引数组插入到多维关联数组时遇到了麻烦。所以基本上是一堆多维数组中的多维数组中的多维数组...... 这有点麻烦,因为我不能手动完成。我需要一种自动化的方法来用一堆字符串来做到这一点。我认为下面的例子会更好地解释它:
//string i want to enter
$string = 'ADAM';
//array i want to end up with
$result = array
(
'A'=> array
(
'D'=>array
(
'A'=>array
(
'M'=>array
(
'result'=>'ADAM'
)
)
)
)
)
我最初的方法只是使用 if 条件将第一个 Char 作为数组插入到主数组中,例如:
for($i = 0; $i < strlen($string); $i++){
if($i == 0){
$array1[$word[$i]] = array();
}
}
效果很好。但后来我遇到了我的问题:我如何跟踪数组中的当前点? 在 if-check 之后,我会选择一个 else 语句,当 $i 大于 0 时起作用。但是如果我想插入数组的下一个维度,在这种情况下是 'D',我需要选择$array1['A'],接下来我需要 $array1['A']['D'] 等。我还没有找到一种方法来做到这一点。我需要进入这个数组的字符串从 4-70 个字符不等。 我知道的每种方法都只改变了第二维,所以我最终得到:
$array1('A'=>array ('A' =>array()));
$array1('A'=>array ('D' =>array()));
$array1('A'=>array ('A' =>array()));
$array1('A'=>array ('M' =>array()));
或由于索引本身是数组而导致的非法偏移错误。 也许我在这里的方法是不可能的,但我仍然认为我可能会问,以防我错过了什么。
在稍后阶段,我希望对所有字符串使用相同的数组,所以我基本上使用字符作为节点。如果“A”作为第一个字符已经存在,我将跳过它并插入下一个字符串的第二个字符进入'A'-Array等。
提前致谢!
【问题讨论】:
-
没关系,别担心。我会在星期一尝试推荐的解决方案,肯定会有很多好死的!
标签: php arrays multidimensional-array associative-array