php在数组中搜索php数组值是';t功能
出于某种奇怪的原因php在数组中搜索php数组值是';t功能,php,arrays,Php,Arrays,出于某种奇怪的原因 if(in_array("January", $season)){ 当我在in_数组中指定“一月”时,它与数组值匹配。但是当我使用包含单词“一月”的$search\u string时,它不匹配。为什么会这样?我删除了单词前后的空格,但仍然不匹配 $season = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "N
if(in_array("January", $season)){
当我在in_数组中指定“一月”时,它与数组值匹配。但是当我使用包含单词“一月”的$search\u string
时,它不匹配。为什么会这样?我删除了单词前后的空格,但仍然不匹配
$season = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
print_r($lines);
Array ( [0] => January - March, November
[1] => 2 travelers: Adult: $9,499 Child: $7,125
[2] => 4 travelers: Adult: $8,315 Child: $6,235
[3] => 6 travelers: Adult: $7,975 Child: $5,980
[4] => June - October, December
[5] => 2 travelers: Adult: $10,799 Child: $8,099
[6] => 4 travelers: Adult: $9,835 Child: $7,375
[7] => 6 travelers: Adult: $9,535 Child: $7,150
)
var_dump($lines);
array(8) { [0]=> string(47) "January - March, November
" [1]=> string(48) "2 travelers: Adult: $9,499 Child: $7,125
" [2]=> string(49) "4 travelers: Adult: $8,315 Child: $6,235
" [3]=> string(47) "6 travelers: Adult: $7,975 Child: $5,980
" [4]=> string(46) "June - October, December
" [5]=> string(49) "2 travelers: Adult: $10,799 Child: $8,099
" [6]=> string(49) "4 travelers: Adult: $9,835 Child: $7,375
" [7]=> string(47) "6 travelers: Adult: $9,535 Child: $7,150
"
}
foreach($lines as $key => $value){
$search_string = explode("-", $value);
$search_string = $search_string[0];
echo "--"; echo $search_string = trim($search_string); echo "--"; // --January--
if(in_array("January", $season)){
echo "Match found";
} else {
echo "Match not found";
}
}
以下是我到目前为止得到的信息:
@精灵,这里是创建阵列线的地方
$lines = array();
foreach(preg_split("/((\r?\n)|(\r\n?))/", $seasonal_price) as $line){
// Only add to array for lines with content
if(trim($line)!="") $lines[] = $line;
}
这是我的最终代码和最终输出:
//Seasonal price
$seasonal_price = $row['post_content'];
//Split individual lines into an array
$lines = preg_split("/[\r\n]+/", strip_tags($seasonal_price), -1, PREG_SPLIT_NO_EMPTY);
//Define seasons
$season = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
echo "<br>";
foreach ($lines as $key => $value) {
$search_string = explode("-", $value);
$search_string = trim($search_string[0]);
if (in_array($search_string, $season)) {
echo '<i class="fa fa-money"></i> <span class="head" style="font-weight:bold;">';echo$value;echo'</span>';
} else {
echo '<span> ';echo$value;echo'</span>';
}
echo "<br>";
}
?>
//季节性价格
$seasonal_price=$row['post_内容];
//将各行拆分为一个数组
$lines=preg\u split(“/[\r\n]+/”,strip\u标签($seasonal\u price),-1,preg\u split\u NO\u空);
//定义季节
$season=数组(“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”);
回声“
”;
foreach($key=>$value的行){
$search_string=explode(“-”,$value);
$search_string=trim($search_string[0]);
if(在数组中($search\u string,$seasure)){
回显“”;回显$value;回显“”;
}否则{
回显“”;回显$value;回显“”;
}
回声“
”;
}
?>
代码部分反映了标签一月和六月的下图结果
问题是,由于浏览器窗口上的html容器,我没有看到隐藏的
标记。我没有看到标记,它被解析为html标记 尝试以下操作:
$lines = preg_split("/[\r\n]+/", strip_tags($seasonal_price), -1, PREG_SPLIT_NO_EMPTY);
foreach ($lines as $key => $value) {
$search_string = explode("-", $value);
$search_string = trim($search_string[0]);
//echo "--"; echo $search_string = trim($search_string); echo "--"; // --January--
if (in_array($search_string, $season)) {
echo "Match found";
} else {
echo "Match not found";
}
echo "\r\n";
}
产出:
Match found
Match not found
Match not found
Match not found
Match found
Match not found
Match not found
Match not found
就像它应该是一样,根据您的输入$lines
更新:正如我们在聊天中发现的那样,填充
$seasonal_price
的数据来自数据库,其中包含:
<strong>January - March, November</strong><br/>
2 travelers: Adult: $9,499 Child: $7,125<br/>
4 travelers: Adult: $8,315 Child: $6,235<br/>
6 travelers: Adult: $7,975 Child: $5,980<br/>
<strong>June - October, December</strong><br/>
2 travelers: Adult: $10,799 Child: $8,099<br/>
4 travelers: Adult: $9,835 Child: $7,375<br/>
6 travelers: Adult: $9,535 Child: $7,150<br/>
一月至三月、十一月
2名旅行者:成人:9499美元儿童:7125美元
4名旅行者:成人:8315美元儿童:6235美元
6名旅行者:成人:$7975儿童:$5980
六月至十月、十二月
2名旅行者:成人:10799美元儿童:8099美元
4名旅行者:成人:$9835儿童:$7375
6名旅行者:成人:9535美元儿童:7150美元
因此,我在我的答案中添加了一个
strip_tags()
call我看不出您的代码中有任何问题。在我的机器上正常工作后,请检查一下,你能不能var\u dump($lines)
?@vijaykumar尝试用$search替换“一月”_string@shyammakwana.me这是一个问题,我想,当你评论你的echo
行时,你忘记了trim()
你的针
我更改了这个:$search\u string=trim($search\u string[0])代码>注释一行,然后将函数放在一行之上,这有关系吗?trim已经在那里了,你刚刚发表了评论。看看我的评论。我的答案中反映了这一点。让我们等待@unixmiah将显示预期的输出,如果有必要,我将更改我的答案。@spirit由于某种原因,您的代码可以工作,但它对我不起作用。我把密码贴在我的问题上。