所以我对PHP有一个小问题。我想我已经把foreach循环搞砸了一下。这是代码:
<?php
error_reporting(0);
class Hash{
public function hashing($password,$hashsum)
{
$iter = date('sh');
$poyl = array($iter,strrev($iter));
foreach ($poyl as $key) {
$itg = array('1','2','3','4','5'); # if == any array element
foreach($itg as $v){
if ($key == $v){ # has to be checked here
$algo = 'TIGER128,3';
} elseif ($key == rand(31,60)){
$algo = 'HAVAL128,4';
} # else
}
} # foreach
return hash($algo,$password.strtok($password,'7'));
}
}
$obj = new Hash();
print $obj->hashing('text',hash($algo,$password.strtok($password,'7')));
我打算在这里实现的目标如下:这应该是一个计算半多态哈希值的类。为了使这种错误的多态性起作用,我需要至少有两种不同的散列算法。 (之后将考虑建立与数据库的依赖关系和相关性)。
所以我的问题是我需要执行一个检查,以确定第一个字符(在这种情况下是整数)是否等于 $ itg 数组中的任何元素(或者如果它是等于任何数字1-30)。如果是这样,算法将 TIGER128,3 ;如果不是(并且日期变量的第一个字符等于31-60的任何值),则应用的算法应为 HAVAL128,4 。
代码完全搞砸了。我正在使用日期函数来生成整数并在之后比较它们,因为我无法想到任何快速的东西(意味着这将会改变)。
答案 0 :(得分:0)
如果您只想比较该数组中的内容,可以使用in_array()
$array = array(1,2,3,4);
$str = '1abcdef';
in_array($str[0], $array) // Returns TRUE;