2010-09-16 30 views
2

我有一个允许用户添加信息和休闲的表单。他们可以在我的表单中通过jQuery添加位置,因此当接收数据时我可能有1个位置或10个。每个位置都具有电话,地址等属性。在我的表单中,输入名称附加了_1,_2等以显示其位置一组新的数据。这是工作顺顺当当,我似乎无法找到这些键在$ _POST阵列评估一个动态数组密钥

private function array_pluck($arr,$text) 
    { 
     foreach($arr as $key => $item) 
     { 
      if(stripos($key,$text) != 0) 
      { 
       $found[] = $item; 
      } 
     } 
     return $found; 
    } 

据我了解,如果我的数组有一些键循环时“office_branch_phone_1,office_branch_phone_2”我应该能够把在我的$ text参数中的“office_branch”中,并且它会在名称中使用“office_branch”的任何键。这不行,但我有点难住。

+0

首先确保$ _POST看起来像您希望它通过'print_r($ _ POST)'或通过调试器提交表单。我的第一个猜测是你的$ arr不是联想的。 – Fanis 2010-09-16 16:49:05

+0

你可以做一个var_dump($ arr)并查看$ _POST []的内容吗? 你也应该做stripos($ key,$ text)!== false。 – btrandom 2010-09-16 16:52:04

回答

1

由于stripos将返回索引(并且它是返回的基于0的索引)!= 0不正确。

if (stripos($key,$text) !== false) 

将是检查它的正确方法。给那一枪。

编辑

注意,因为0使用!==代替!=往往被认为是false如果松散检查!==将检查实际的类型,所以0是一个有效的回报。只需额外收集一些信息

+0

需要更多的咖啡,这是诀窍! – Collin 2010-09-16 16:52:48