1

我在关联数组上使用 array_key_exists 来检测是否存在这样的键......

if (array_key_exists('Packaged price (£3.00)', $item))
{
echo 'The Key Exists';
}

这工作正常,但我想修改它,以便它检查密钥是否已打包在名称中。因此,它不仅适用于“打包价格(3.00 英镑)”,还适用于以下...

Packaged cost (£3.00)
Packaged price (£17.00)
Packaged Item

这可能吗?

4

3 回答 3

1

array_key_exists 在这种情况下将不起作用,它将执行完全匹配,因为您可以使用以下要求:

foreach($array as $key=>$val){
   $keyArray = explode(' ',$key);
   if(in_array('Packaged',$keyArray))
      echo "Key exists" ;
}
于 2014-10-20T17:52:25.477 回答
1

只需遍历所有键并检查是否有任何键包含该术语Packaged

foreach($items as $key=>$value)
{
      if(stristr($key,'Packaged')!==FALSE)
         echo "Matching key is: $key";
}

小提琴

于 2014-10-20T17:53:44.073 回答
0
$test = "Package sdsd";

echo preg_match("/(Package)+/",$test);

您可以使用简单的正则表达式,例如上面的示例,如果 Package 单词出现字符串,则结果将为 true

于 2014-10-20T18:00:20.307 回答