Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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-数字值作为关联数组中的键_Php_Arrays_Multidimensional Array_Associative Array - Fatal编程技术网

PHP-数字值作为关联数组中的键

PHP-数字值作为关联数组中的键,php,arrays,multidimensional-array,associative-array,Php,Arrays,Multidimensional Array,Associative Array,示例数组: Array ( [en] => Array ( [active] => 0 [default_locale] => en_US ) [es] => Array ( [active] => 1 [default_locale] => es_ES ) [de] =&g

示例数组:

Array
(
    [en] => Array
        (
            [active] => 0
            [default_locale] => en_US
        )

    [es] => Array
        (
            [active] => 1
            [default_locale] => es_ES
        )

    [de] => Array
        (
            [active] => 0
            [default_locale] => de_DE
        )

    [fr] => Array
        (
            [active] => 0
            [default_locale] => fr_FR
        )
)
我需要将活动1的阵列中取出。 我知道我可以在数组中循环找到它,但没有更好的方法吗

我搞砸了:

array_search('1', array_column($array, 'active'));
而不是命名键,我得到它的数字位置,在这个例子中它是
1
,但我需要
es


最后,
$array[1]
不会输出任何内容。

我只会使用类似于这个迭代器的东西。它可以工作,而且非常简单,没有研究项目;-)


我会使用类似于这个迭代器的东西。它可以工作,而且非常简单,没有研究项目;-)


如果不想使用for循环。考虑到您只有一种活动语言。如果您有多个,将采用第一次出现

Array
(
    [active] => 1
    [default_locale] => es_ES
)
输出:

$key = substr(array_search('1', array_column($array, 'active', 'default_locale')), 0, 2);

如果您不想使用for循环。考虑到您只有一种活动语言。如果您有多个,将采用第一次出现

Array
(
    [active] => 1
    [default_locale] => es_ES
)
输出:

$key = substr(array_search('1', array_column($array, 'active', 'default_locale')), 0, 2);

除了Ravinder Reddy伟大的回答;由于我们知道
default\u locale
包含数组中的部分键,只需提取
active
并使用
default\u locale
索引,然后获取前2个字符:


这不是一个通用的解决方案,特定于此数组结构,它只返回第一个键,其中
active=1
en
)。

除了Ravinder Reddy的伟大答案;由于我们知道
default\u locale
包含数组中的部分键,只需提取
active
并使用
default\u locale
索引,然后获取前2个字符:


这不是一个通用解决方案,并且特定于此数组结构,它只返回第一个键,其中
active=1
en
)。

是否应该只有一个键的active=1?因为你的例子有2个。是否同时返回
en
es
?$array[1]应为空-主数组中的数组键是字符串,而不是整数。@iainn表示您有两种活动语言,它应返回哪种语言,或同时返回
en
es
?@iainn抱歉,这是输入错误。在给定的时间内只能有一个活动。将更正。是否应该只有一个active=1的键?因为你的例子有2个。是否同时返回
en
es
?$array[1]应为空-主数组中的数组键是字符串,而不是整数。@iainn表示您有两种活动语言,它应返回哪种语言,或同时返回
en
es
?@iainn抱歉,这是输入错误。在给定的时间内只能有一个活动。Will correct.OP明确表示,他们正在寻找与此不同的方法:“我知道我可以循环遍历数组并找到它,但是否有更好的方法?”作者正在寻找一种“更好的方法”,但有了这样简单明了的方法,简单有效的方法才是正确的方法。我认为任何进行代码审查的团队都会温和地建议寻找另一种方法可能是浪费时间。因此,建议将其作为评论。发布一个描述如何做OP不想做的事情的答案同样是浪费时间。冷静点,一切都很好:)OP明确表示他们正在寻找不同于此的东西:“我知道我可以通过数组循环找到它,但没有更好的方法吗?”作者在寻找“更好的方法”但是有了这样简单明了的东西,简单有效的方法才是正确的方法。我认为任何进行代码审查的团队都会温和地建议寻找另一种方法可能是浪费时间。因此,建议将其作为评论。发布一个描述如何做OP不想做的事情的答案同样是浪费时间。冷静点,一切都很好:)在立方体之外思考,我喜欢,但我不得不接受另一个答案:)在立方体之外思考,我喜欢,但我不得不接受另一个答案:)