Php算法解决方案?

Php算法解决方案?,php,algorithm,Php,Algorithm,在PHP中 如果你有一个一百万个整数的数组,你将如何打印每个包含数字seveneg..7,17,67。。如果不使用循环?某些东西总是要在数组中循环。但您可以研究如何将数组缩减为只包含以7结尾的数字。尝试使用: function sevens($var) { return strpos($var, '7') !== false; } $input = array( /* one million integers */ ); $output = array_map($input, 'se

在PHP中


如果你有一个一百万个整数的数组,你将如何打印每个包含数字seveneg..7,17,67。。如果不使用循环?

某些东西总是要在数组中循环。但您可以研究如何将数组缩减为只包含以7结尾的数字。

尝试使用:

function sevens($var) {
    return strpos($var, '7') !== false;
}

$input  = array( /* one million integers */ );
$output = array_map($input, 'sevens');

你并没有给人这样的印象,但是无论如何:写一个函数,如果它包含一个7,那么它会回显一个整数,并使用array\u map为每个部分调用它


您必须以这样或那样的方式使用循环。你可以做一个递归循环,但这不是一个好主意


如果你真的不想自己做一个循环,那就使用或。

我想你可以这样做

WHERE intVal LIKE '%7%'

整数将自动转换为字符串。无论如何,这是值得一试的。

也许就是这样

$one_million_number_array = array(1, 1232, 347, 898, 777);
function echo_if_contains_seven($val) {
    if (strpos($val, '7') !== FALSE) { 
        echo $val, "\n"; 
    } 
}

array_walk($one_million_number_array, 'echo_if_contains_seven');

@helloThere要么你在问题中遗漏了一些重要的输入,要么就是你的措辞不正确: 没有任何算法可以猜测一个数字是否包含数字7,因此您必须逐个检查所有整数,因此,这不是提出算法的问题


我的猜测是,问你这个问题是为了看看你是否熟悉php——希望你能想出array_map解决方案或类似的东西——但即使在这种情况下——这不是算法的问题——因为你会想出的每个解决方案都实现了一个循环。所以答案就是——不可能

问题不是结束,而是包含,这需要做一些更改。也可以使用array_walk处理数组。我假设这是您的家庭作业?引入循环是为了避免多次编写复制相同代码。所以,你有两个选择——或者使用一个循环,不管它是for还是foreach循环,或者像array\u filter或array\u walk这样的函数——事实上,它们都是循环,或者编写一百万次检查单个整数的代码。没有循环?你没有。前面提到的数组函数在数组内部循环,因此确实会发生循环。如果你想避免在PHP中构建循环,那么你可以使用前面提到的array\u filter、array\u walk或array\u map函数。你是否也将工作外包给SO?你当然是。但是,如果你自己做一些研究和编码,并向我们展示你的努力,会不会有伤害呢?你可能是对的,我想他们只是在测试我,看看我会想出什么。谢谢你嘿,strpos,有点让我困惑,在PHP文档中它说它返回针的位置,那么为什么当我把7作为第一个字符串,那么位置0,它仍然打印7?你有点困惑是可以理解的。在PHP中,strpos的行为很奇怪:正如您所说的,当指针正好位于草堆顶部时,它可能返回0,但当指针完全找不到时,它将返回FALSE。这就是为什么你需要严格的检查FALSE,用于分隔“未找到”案例;'普通的“支票”没什么用。