我想使用$row
查找字符串中的单词数,但我不知道如何。
在此变量$row['item_name']
中:
IphoneAsus Strix LaptopIphoneBagIphoneCalculatorMakeupIphoneWalletIphone
我正在使用以下代码:
<?php
error_reporting(0);
?>
<html>
<head>
<title></title>
</head>
<body>
<table>
<tr>
<th>ID</th>
<th>Item Name</th>
<th>Type</th>
<th>Brand</th>
<th>Model</th>
<th>Color</th>
<th>Status</th>
</tr>
<?php
$db = mysqli_connect("localhost","root","","matching");
$sql = "SELECT * FROM item";
$result = mysqli_query($db, $sql) or die ("Invalid Query: $sql");
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
echo "<tr>
<td align='center'>" . $row["id"] . "</td>
<td align='center'>" . $row['item_name'] . "</td>
<td align='center'>" . $row['sub1_type'] . "</td>
<td align='center'>" . $row['sub2_brand'] . "</td>
<td align='center'>" . $row['sub3_model'] . "</td>
<td align='center'>" . $row['sub4_color'] . "</td>
<td align='center'>" . $row['status'] . "</td>
</tr>";
//inside this $row['item_name']: Iphone, Asus Strix Laptop, Iphone, Bag, Iphone, Calculator, Makeup, Iphone, Wallet, Iphone
echo $number = preg_match_all('/Iphone/', $row['item_name']);
// output:1010100101
}
}
?>
</table><br><br>
<?php
$a="IphoneAsus Strix LaptopIphoneBagIphoneCalculatorMakeupIphoneWalletIphone";
echo $number = preg_match_all('/Iphone/', $a); //ouput:5
?>
</body>
</html>
输出应为:5
但是输出显示:1010100101
有人有主意吗?
谢谢!
答案 0 :(得分:1)
据我了解,$row['item_name']
不包含IphoneAsus Strix LaptopIphoneBagIphoneCalculatorMakeupIphoneWalletIphone
,但每一行都包含:
Iphone
-> 1场比赛Asus Strix Laptop
-> 0个匹配项Iphone
-> 1场比赛Bag
-> 0个匹配项Iphone
-> 1场比赛...
因此,对于您的10行,您有1010100101
看看生成的页面的来源,您没有1010100101
,但是先是1
然后是0
然后是1
然后是0
... <tr>...</tr>
我建议您更改行:
echo $number = preg_match_all('/Iphone/', $row['item_name']);
具有:
$number += preg_match_all('/Iphone/', $row['item_name']);
然后在while循环之后:
echo $number;
在这里您将拥有预期的5
。