首页 > 解决方案 > 我只想从一个多于和少于 3 个字符的数组中获取单词列表,但我该怎么做呢?

问题描述

$name   = array('jake', 'rita', 'ali', 'addert', 'siryteee', 'skeueei', 'wsewwauie', 'aaaaweefio');
$vowels = array('a', 'e', 'i', 'o', 'u');
$massiv = [];
$vowel  = [];

for ($i = 0; $i < count($name); $i++) {

    $massiv[] = $name[$i];

    for ($j = 0; $j < count($vowels); $j++) {
        $vowel[] = $vowels[$j];
    }
}
if (count($massiv[$vowel] >= 3) {
    print_r($massiv);
}

标签: phparraysalgorithmstructure

解决方案


您可以使用正则表达式来计算元音的数量。

我只想从一个多于和少于 3 个字符的数组中获取单词列表,但我该怎么做呢?

我假设您想要 2 个数组,其中包含一个包含超过 3 个元音的名称列表,另一个包含少于 3 个元音的名称列表。注意 - 我故意省略了有 3 个元音的名字,因为我不知道应该把它们放在哪个列表中。你应该能够很容易地添加它。

http://sandbox.onlinephpfunctions.com/code/69f838a4dca56f651a521854636212c545dddbb2

<?php
$names = array('jake', 'rita', 'ali', 'addert', 'siryteee', 'skeueei', 'wsewwauie', 'aaaaweefio');

$moreThanThree = [];
$lessThanThree = [];

foreach ($names as $name) {

    $count = preg_match_all('/[aeiou]/i', $name, $matches);

    if ($count > 3) {
        $moreThanThree[] = $name;
    }

    if ($count < 3) {
        $lessThanThree[] = $name;
    }
}

// You now have 2 arrays - $moreThanThree & $lessThanThree

var_dump($moreThanThree);
var_dump($lessThanThree);

推荐阅读