Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 转到或创建第二个IndexNumber数组的数组索引基_Php_Arrays_Multidimensional Array_Indexing - Fatal编程技术网

Php 转到或创建第二个IndexNumber数组的数组索引基

Php 转到或创建第二个IndexNumber数组的数组索引基,php,arrays,multidimensional-array,indexing,Php,Arrays,Multidimensional Array,Indexing,好的,这听起来可能是一个奇怪的问题,所以首先让我陈述一下基本情况: 我们公司使用的是票务系统。这个系统有一个FAQ数据库。我不能以任何方式改变数据库的结构,因为我们必须改变ticketsystem来应对这种变化,而这不是一个选项 因此,在这一点上… 因为没有单独的字段可用,我们在每个项目的标题中添加一个章节号,以获得一种索引 所以你会得到这样的结果: 1 start 1.1 some subchapter 2 new chapter 3 another chapter 3.1 sub of ch

好的,这听起来可能是一个奇怪的问题,所以首先让我陈述一下基本情况:

我们公司使用的是票务系统。这个系统有一个FAQ数据库。我不能以任何方式改变数据库的结构,因为我们必须改变ticketsystem来应对这种变化,而这不是一个选项

因此,在这一点上…
因为没有单独的字段可用,我们在每个项目的标题中添加一个章节号,以获得一种索引

所以你会得到这样的结果:

1 start
1.1 some subchapter
2 new chapter
3 another chapter
3.1 sub of chapter
3.1.1 sub sub chapter
等等

当然,使用漂亮的正则表达式,很容易从字符串中增加章节部分。但下一步是根据父章节轻松找到相应的子章节。让这个在没有数据库的情况下可搜索的最简单方法是多维数组,对吗

所以你会得到这个:

array( 3 => array( 
              'item' => 'data', 1 => array('item', 2 = array() ) ) )  etc...
我现在所做的是创建一个章节索引数组(在3.1.1中为[3,1,1]),因为我知道数组中总是有1到3个项目,所以我根据数组长度进行了切换,然后执行以下操作:

$array[$index[0]][$index[1]]['item'] = $content;
但我觉得这是一种非常肮脏和不灵活的做法。通常我会投票支持改变数据库结构,但如果没有这个选项,我不确定最好的方法是什么

任何帮助都会很好

编辑:在下面添加我的评论以提高可读性


标题确实是一行,但我已经使用正则表达式提取了章节部分。这就行了

我基本上构建的是一个表单,它使用索引数组为每个章节或章节构建一个复选框列表。但我不想通过搜索数组和比较键来找到子章。因此,如果我选择3.1,我会选择3.1.1,3.1.2,因为键以3.1开头,我知道如何打印它

更快的是能够做到这一点:

选择3.1.1=>return$chapters[3][1][1][item']


但是,只有当我能够以这种形式构建初始数组时,这才是可能的。

情况发生了变化,我们正在创建第二个数据库结构,该结构具有更好的设置来处理上述情况

基本上,我们使用它既可以打印格式良好的PDF,也可以在票务系统的FAQ中推送信息


这给了我们最好的两个世界,从而解决了上述问题

所有标题都是一行吗?这是在一个单独的页面上,还是有多个页面,您根据这些索引进行搜索?标题确实是一行,但我使用正则表达式提取章节部分。这就行了。我基本上构建的是一个表单,它使用索引数组为每个章节或章节构建一个复选框列表。但我不想通过搜索数组和比较键来找到子章。因此,如果我选择3.1,我会选择3.1.1,3.1.2,因为键以3.1开头,我知道如何打印它。更快的是能够做到这一点:选择3.1.1=>return$chapters[3][1][1]['item'],但这只有在我能够以这种形式构建初始数组时才可能。