首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cakephp检查数组中是否有两个值

Cakephp检查数组中是否有两个值
EN

Stack Overflow用户
提问于 2010-01-17 05:40:35
回答 3查看 1K关注 0票数 0

我只需要允许成员写一篇关于住宿的评论,如果他们住在住宿,并且那里的member_id匹配Auth->用户(‘id’)。

在住宿/视图上,我传递BookingRequests数据。

它看起来像这样

代码语言:javascript
复制
BookingRequest
  0
    member_id => 4
    accepted => 1
  1
    member_id => 5
    accepted => 0
  2
    member_id => 4
    accepted => 0

我如何搜索数组,以便只允许留下来的人添加评论?

EN

回答 3

Stack Overflow用户

发布于 2010-01-17 05:50:26

在其他语言的PHP中,这并不容易,所以您必须以不同的方式进行注入。

如下所示:

代码语言:javascript
复制
$vars = array();
foreach ($members as $request) {
  if ($request->accepted) {
    array_push($vars, $request);
  }
}
票数 0
EN

Stack Overflow用户

发布于 2010-01-17 06:40:38

尝尝这个,

代码语言:javascript
复制
function search($array, $key, $value)
    {
        $results = array();

        if (is_array($array))
        {
            if ($array[$key] == $value)
                $results[] = $array;

            foreach ($array as $subarray)
                $results = array_merge($results, search($subarray, $key, $value));
        }

        return $results;
    }

    $array = array(
                  "member_id" => 4, array("accepted" => 11),
                  "member_id" => 5, array("accepted" => 02), 
                  "member_id" => 4, array("accepted" => 0)
                   );


    $stayedmember = search($array,$memberID,"accepted");

    print_r($stayedmember );
票数 0
EN

Stack Overflow用户

发布于 2010-01-18 04:47:32

假设'accepted‘确定他们是否已经在住宿中停留,并且下面的测试数组确实是您的数据数组的格式,那么您可以使用以下代码:

代码语言:javascript
复制
/* Test data */
$BookingRequestData = array(
    array('member_id' => 4, 'accepted' => 1),
    array('member_id' => 5, 'accepted' => 0),
    array('member_id' => 4, 'accepted' => 0)
);

$canAddReview = (count(Set::extract("/data[member_id=" . $this->Auth->user('id') . "][accepted=1]", array('data' => $BookingRequestData))) > 0);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2078996

复制
相关文章

相似问题

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