array_key_exists содержит строку

Я использую 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

Это возможно?

1

Решение

Просто переберите все ключи и проверьте, содержит ли какой-либо термин термин Packaged

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

скрипка

1

Другие решения

array_key_exists не будет работать в этом случае, он будет выполнять точное совпадение, для вашего требования могут использоваться следующие:

foreach($array as $key=>$val){
$keyArray = explode(' ',$key);
if(in_array('Packaged',$keyArray))
echo "Key exists" ;
}
1

$test = "Package sdsd";

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

Вы можете использовать простое регулярное выражение, как пример выше, если слово Package встречает строку, результат будет истинным

0
По вопросам рекламы [email protected]