查找包含空格的子字符串 (PHP)
Find a substring, that contains whitespaces (PHP)
我无法解决这个问题,请大家帮忙。
如果子字符串包含空格,如何在字符串中查找子字符串?
示例 - 我在数据库中存储了一个如下所示的字符串:
$string = "Color: black; Weight: 2.3 kg; Screen size: 15.6''; Screen resolution: 1366 x 768;"
有没有办法得到这个子串的位置?
$substring = "Screen size:";
总的来说,我想要实现的是,我想根据子字符串获取分号后的值。例如:
if substring = "Color:" then return black
if substring = "Weight:" then return 2.3 kg
等堡
提前致谢。
你可能会像这样完成工作。我试着给你一个一步一步的解决方案,这样你就可以理解了。
如果有您不知道的功能,请不要犹豫查看 PHP 文档。
初始字符串
$string = "Color: black; Weight: 2.3 kg; Screen size: 15.6''; Screen resolution: 1366 x 768;";
$array = explode(';',$string);
现在,$array
看起来像:
[
"Color: black",
"Weight: 2.3 kg",
"Screen size: 15.6''",
"creen resolution: 1366 x 768"
]
然后遍历数组再展开
$finalArray = array();
$foreach ($elem in $array) {
$keyValue = explode(':',$elem);
$finalArray[$keyValue[0]] = $keyValue[1];
}
现在 $finalArray
看起来像 :
[
"Color" => "black",
"Weight" => "2.3 kg",
"Screen size" => "15.6''",
"creen resolution" => "1366 x 768"
]
希望对您有所帮助
我会这样做:
<?php
$string = "Color: black; Weight: 2.3 kg; Screen size: 15.6''; Screen resolution: 1366 x 768;";
$specs = array();
preg_match_all('/(.*?):\s+(.*?); ?/i', $string, $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[1]); $i++) {
$specs[$matches[1][$i]] = $matches[2][$i];
}
function whatIsThe($item, $specs){
return $specs[$item];
}
echo whatIsThe("Color", $specs);
//black
echo whatIsThe("Screen resolution", $specs);
//1366 x 768
//etc...
我无法解决这个问题,请大家帮忙。
如果子字符串包含空格,如何在字符串中查找子字符串?
示例 - 我在数据库中存储了一个如下所示的字符串:
$string = "Color: black; Weight: 2.3 kg; Screen size: 15.6''; Screen resolution: 1366 x 768;"
有没有办法得到这个子串的位置?
$substring = "Screen size:";
总的来说,我想要实现的是,我想根据子字符串获取分号后的值。例如:
if substring = "Color:" then return black
if substring = "Weight:" then return 2.3 kg
等堡
提前致谢。
你可能会像这样完成工作。我试着给你一个一步一步的解决方案,这样你就可以理解了。 如果有您不知道的功能,请不要犹豫查看 PHP 文档。
初始字符串
$string = "Color: black; Weight: 2.3 kg; Screen size: 15.6''; Screen resolution: 1366 x 768;";
$array = explode(';',$string);
现在,$array
看起来像:
[
"Color: black",
"Weight: 2.3 kg",
"Screen size: 15.6''",
"creen resolution: 1366 x 768"
]
然后遍历数组再展开
$finalArray = array();
$foreach ($elem in $array) {
$keyValue = explode(':',$elem);
$finalArray[$keyValue[0]] = $keyValue[1];
}
现在 $finalArray
看起来像 :
[
"Color" => "black",
"Weight" => "2.3 kg",
"Screen size" => "15.6''",
"creen resolution" => "1366 x 768"
]
希望对您有所帮助
我会这样做:
<?php
$string = "Color: black; Weight: 2.3 kg; Screen size: 15.6''; Screen resolution: 1366 x 768;";
$specs = array();
preg_match_all('/(.*?):\s+(.*?); ?/i', $string, $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[1]); $i++) {
$specs[$matches[1][$i]] = $matches[2][$i];
}
function whatIsThe($item, $specs){
return $specs[$item];
}
echo whatIsThe("Color", $specs);
//black
echo whatIsThe("Screen resolution", $specs);
//1366 x 768
//etc...