我对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'的结束字母?
非常感谢。
答案 0 :(得分: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
(我认为这就是你所看到的为?)
答案 1 :(得分: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
}
}
我想应该是这样的。让我知道你对此的看法。
答案 2 :(得分:1)
您可以使用以下方式检查数组中是否存在字符串
<?php
$array = array('mike','sam','david','somevalue');
$str = 'somevalue';
if(in_array($str,$array)){
//do whatever you want to do
echo $str;
}
?>