Php 使用数组_键并获得意外结果
我有一个分配给$elements的数组。当我使用数组_键来获取这些键时,我得到了您所期望的结果Php 使用数组_键并获得意外结果,php,arrays,Php,Arrays,我有一个分配给$elements的数组。当我使用数组_键来获取这些键时,我得到了您所期望的结果 print_r(array_keys($elements)); 结果: Array ( [0] => anchor-namecontentblock_areaBlock0contentblock11_1 [1] => anchor-namecontentblock_areaBlock0contentblock22_1 [2] => anchor-nameco
print_r(array_keys($elements));
结果:
Array
(
[0] => anchor-namecontentblock_areaBlock0contentblock11_1
[1] => anchor-namecontentblock_areaBlock0contentblock22_1
[2] => anchor-namecontentblock_areaBlock0contentblock33_1
...
但当我尝试使用带有搜索值的数组_键时,得到的是一个空数组
print_r(array_keys($elements, "anchor-namecontentblock_areaBlock0contentblock11_1"));
如果结果不是:
Array
(
[0] => 0
)
我缺少什么吗?为
数组\u key
指定搜索参数可用于检索与数组中的一个或多个值相对应的键。您正在向它传递一个数组键,因此该函数不返回任何结果。将搜索参数指定给数组\u键
允许您检索与数组中一个或多个值对应的键。您正在向它传递一个数组键,因此函数不返回任何结果。您执行了错误的数组\u键搜索。您的锚定名称…
值是原始数组中的键,而不是值。因此,您的array\u key
search参数是无用的-它将搜索原始数组的值,例如
$foo = array(
'anchor-namecontentblock_areaBlock0contentblock11_1' => 'somevalue'
etc..
searched by array_keys---------^^^^^^^^^^
你需要做一些更像:
$results = array_search('anchor-name...', array_keys($elements)));
^^^^^^^^^^^^^
相反。您执行了错误的数组\u键搜索。您的
锚定名称…
值是原始数组中的键,而不是值。因此,您的array\u key
search参数是无用的-它将搜索原始数组的值,例如
$foo = array(
'anchor-namecontentblock_areaBlock0contentblock11_1' => 'somevalue'
etc..
searched by array_keys---------^^^^^^^^^^
你需要做一些更像:
$results = array_search('anchor-name...', array_keys($elements)));
^^^^^^^^^^^^^
相反。我们可以拥有
$elements
的内容吗?是的!您肯定缺少@Rizier123此处打印的数组是array\u键($elements)
的结果,而不是原始数组array\u search()
用于搜索值,而不是键。还要设置XDebug
。@D4V1D来自手册:搜索数组中给定的值,如果成功,则返回相应的键
,因此OP希望从值中查找键我们可以获得$elements
的内容吗?是的!您肯定缺少@Rizier123此处打印的数组是array\u键($elements)
的结果,而不是原始数组array_search()
用于搜索值,而不是键。还要设置XDebug
。@D4V1D从手册:搜索数组中的给定值,如果成功,则返回相应的键
,因此OP希望从值中查找键。谢谢你。不过为了澄清,array_search需要字符串作为第一个参数,数组作为第二个参数:array_search('anchor-name…',array_key($elements));令人惊叹的谢谢你。不过为了澄清,array_search需要字符串作为第一个参数,数组作为第二个参数:array_search('anchor-name…',array_key($elements));