Php 对动态数组键求值

Php 对动态数组键求值,php,arrays,Php,Arrays,我有一个表单,允许用户添加他们休闲的信息。他们可以通过jQuery在我的表单中添加位置,因此当接收数据时,我可能有1个位置或10个位置。每个位置都有一些属性,如电话、地址等。在我的表单中,输入的名称被附加上_1、_2等,以显示其新的数据集。这是顺利的工作,我只是似乎找不到这些键时,循环通过$后数组 private function array_pluck($arr,$text) { foreach($arr as $key => $item) {

我有一个表单,允许用户添加他们休闲的信息。他们可以通过jQuery在我的表单中添加位置,因此当接收数据时,我可能有1个位置或10个位置。每个位置都有一些属性,如电话、地址等。在我的表单中,输入的名称被附加上_1、_2等,以显示其新的数据集。这是顺利的工作,我只是似乎找不到这些键时,循环通过$后数组

private function array_pluck($arr,$text)
    {
        foreach($arr as $key => $item)
        {
            if(stripos($key,$text) != 0)
            {
                $found[] = $item;
            }
        }
        return $found;
    }
据我所知,如果我的数组有一些键“office\u branch\u phone\u 1,office\u branch\u phone\u 2”,我应该能够在$text参数中输入“office\u branch”,它将吐出名称中带有“office\u branch”的任何键。然而,这不起作用,我有点困惑

Since将返回索引(返回的是基于0的索引)
!=0不正确

if (stripos($key,$text) !== false)
这是检查它的正确方法。试试看

编辑


注意
的用法==而不是
=因为如果不严格地检查
,0往往被视为
错误
==将检查实际类型,因此0是有效的返回值。只需要一点额外的信息

首先,通过
print\r($\u POST)
或通过调试器确保$\u POST在表单提交中看起来与您期望的一样。我的第一个猜测是你的$arr没有关联性。你能做一个var_转储($arr)并查看$u POST[]的内容吗?您还应该使用stripos($key,$text)!==错。