PHP计数字符串作为数组内部的值出现的次数

时间:2014-05-30 19:56:31

标签: php arrays search count

所以我在这里看了一下,但似乎无法做到这一点,所以我被迫发一个新帖子。我付出了努力!不要伤害我。

示例数组:

$ndata = Array
(
    [ARMOR_HEAD] => Andariel's Visage
    [ARMOR_TORSO] => Blackthorne's Surcoat
    [ARMOR_FEET] => Illusory Boots
    [ARMOR_HANDS] => Gauntlets of Akkhan
    [ARMOR_SHOULDERS] => Pauldrons of Akkhan
    [ARMOR_LEGS] => Blackthorne's Jousting Mail
    [ARMOR_BRACERS] => Nemesis Bracers
    [ARMOR_MAINHAND] => Gyrfalcon's Foote
    [ARMOR_OFFHAND] => Jekangbord
    [ARMOR_WAIST] => Blackthorne's Notched Belt
    [ARMOR_RRING] => Ring of Royal Grandeur
    [ARMOR_LRING] => Stone of Jordan
    [ARMOR_NECK] => Kymbo's Gold
)

  $count = count(preg_grep('Akkhan', $ndata));
  print_r($count);

所以这只返回1而不是2.我也尝试array_search(),但这只是返回第一个找到它的键。或in_array,但这只是布尔我猜..有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

preg_grep的第一个参数不是字符串,它是表示为字符串的正则表达式模式。试试这个:

preg_grep('/Akkhan/i', $ndata)

有关详细信息,请参阅preg_grep的文档页面。