0

我对 php 相当陌生,所以我不确定我想在这里找到的名称和术语。我确实在 SE 上进行了搜索,但尽管问题的标题相似,但它们提出的问题完全不同,不幸的是,它们甚至没有部分相关。如果它存在并且我找不到,请提前原谅。

我有一个字符串$str= 'somevalue';或一个$array = ['s', 'o', 'm' ..];

现在,我有另一个二维数组,我想检查这个主数组的第一个项目,并根据它们是否存在,添加第二个项目。

$to_match[] = ('match' => 'rnd_letter', 'if_not_add' => 'someval');
$to_match[] = ('match' => 'rnd_letter', 'if_not_add' => 'someval_x');
..

rnd_letter 是一个字母或字母的组合, someval 是一样的。

如何检查 $str 中是否存在“match”中的字母,如果不存在,则添加到数组的“if_not_add”的末尾字母?

非常感谢你。

4

3 回答 3

2
$to_match = array();
$to_match[] = array('match' => 'hello', 'if_not_add' => 'value 1');
$to_match[] = array('match' => 'abc', 'if_not_add' => 'value 2');
$to_match[] = array('match' => 'w', 'if_not_add' => 'value 3');

$str = 'Hello World!';
$new_array = array();

foreach($to_match as $value) {
  if(!stristr($str, $value['match'])) {
    $new_array[] = $value['if_not_add'];
  }
}

var_dump($new_array); // outputs array(1) { [0]=> string(7) "value 2" } 

这将遍历每个数组元素,然后检查 的值是否match存在于 中$str,如果不存在,它将添加到$new_array(我认为这就是你要找的东西?)

于 2012-05-14T09:43:53.187 回答
1

细绳:

for (int i = 0; i < strlen($to_match['match']); i++) {
    $char = substr($to_match['match'], i, 1);
    if (strpos($str, $char) !== false) {
        //contains the character
    } else {
        //does not contain the character
    }
}

大批:

for(int i = 0; i < strlen($to_match['match']); i++) {
    $char = substr($to_match['match'], i, 1);
    $charFound = false;
    for (int j = 0; j < count($array); j++) {
        if ($char == $array[j]) {
            $charFound = true;
        }
    }

    if ($charFound) {
        //it contains the char
    } else {
        //it doesnt contain the char
    }
}

我想应该是这样的。让我知道你对此有何看法。

于 2012-05-14T09:36:14.547 回答
1

您可以使用以下方式检查数组中是否存在字符串

<?php 
$array = array('mike','sam','david','somevalue');
$str = 'somevalue';
if(in_array($str,$array)){
    //do whatever you want to do
    echo $str;
}

?>
于 2012-05-14T09:43:05.103 回答