首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将此伪代码转换为PHP

将此伪代码转换为PHP
EN

Stack Overflow用户
提问于 2011-04-16 07:39:04
回答 2查看 376关注 0票数 0

我正在尝试编写一个函数,它基本上是从一个句子中获取一个“属性”。这些是参数。

代码语言:javascript
复制
$q = "this apple is of red color"; OR $q = "this orange is of orange color";
$start = array('this apple', 'this orange');
$end = array('color', 'color');

这就是我想要实现的函数:

代码语言:javascript
复制
function prop($q, $start, $end)
{
   /*
    if $q (the sentence) starts with any of the $start
    and/or ends with any of the end
    separate to get "is of red"
   */

}

不仅代码本身有问题,我也不确定如何搜索是否有任何数组值以所提供的$q开头(而不仅仅是包含)。

任何输入都会很有帮助。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-16 08:09:52

像这样的东西应该是可行的

代码语言:javascript
复制
function prop($q, $start, $end) {
  foreach ($start as $id=>$keyword) {
    $res = false;
    if ((strpos($q, $keyword) === 0) && (strrpos($q, $end[$id]) === strlen($q) - strlen($end[$id]))) {
      $res = trim(str_replace($end[$id], '', str_replace($keyword, '', $q)));
      break;
      }
    }
  return $res;
  }

所以在你的例子中,这段代码

代码语言:javascript
复制
$q = "this orange is of orange color";
echo prop($q, $start, $end);

打印

是橙色的

这段代码

代码语言:javascript
复制
$q = "this apple is of red color"; 
echo prop($q, $start, $end);

打印

是红色的

这段代码

代码语言:javascript
复制
$start = array('this apple', 'this orange', 'my dog');
$end = array('color', 'color', 'dog');

$q = "my dog is the best dog"; 
echo prop($q, $start, $end);

将会返回

是最好的

票数 1
EN

Stack Overflow用户

发布于 2011-04-16 07:47:04

使用strposstrrpos。如果它们返回0,则字符串位于最开始/最末尾。

并不是说您必须使用=== 0 (或!== 0进行反向)来测试,因为如果没有找到字符串,它们将返回false,如果没有找到字符串,则返回0 == false,而返回0 !== false

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5683371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档