当调用数组的未定义元素时,它向我显示另一个已定义元素的值.
数组结构示例:
$array = array(
'a' => array(
'b' => 'c'
)
);
Run Code Online (Sandbox Code Playgroud)
当使用echo命令时,$array['a']['b']['x']它显示我的值'c'.为什么会发生这种情况我真的不明白,因为$array['a']['b']['x']没有定义.
然后当我尝试使用命令添加另一个值时$array['a']['b']['x'] = 'y';
它正在重写$array['a']['b']to 的值'y'
不知怎的,我真的不明白这种行为,有人可以解释这是怎么可能的?然后,我将如何创建一个新的字符串值,$array['a']['b']['x'] = 'xyz'以不覆盖$array['a']['b']?
在设置问题之前,我将首先尝试通过在SOLR中使用分面搜索来解释我想要实现的目标.想象一下,我有一个狗的参数,它描述了什么是适合的狗,一只狗可以有多种选择.我们称之为"住房".所以狗适合:
所以基本上当我在这个参数上使用分面搜索时,我得到了当前数据库的结果(url query facet=true&facet.field=housing):
室内(74),室外(63),儿童(71),老人(65),守卫(31).
现在,当我检查室内参数(url查询fq=housing:1&facet=true&facet.field=housing)时,我得到如下结果:
室内(74),户外(53),儿童(60),老人(53),守卫(15).
它告诉我,如果检查下一个参数"户外",有53只狗在室内和室外.我想得到结果,这将告诉"如果我检查下一个选项,将在结果中添加多少只狗".因为可以有适合户外的狗.在首先检查"室内"参数后,我想得到这样的结果:
室内(74),户外(83),儿童(78),老人(79),守卫(75)
或
室内其他方式(+0) ,户外(+9),儿童(+4),老人(+5),看守(+ 1)
在SOLR分面搜索中它是否可能是这样的?或者我使用不正确的工具来实现这一目标.因为基本上当我检查"室内"和"户外"时,我从查询中获得了正确的结果计数(url查询fq=housing:(1 OR 2)&facet=true&facet.field=housing).方面的重要性不是我预期的.