0

有可能做到这一点吗?

我有一些数组

Array
(
    [1] => Model_Like Object
        (
            [_is_new:protected] => 
            [_frozen:protected] => 
            [_data:protected] => Array
                (
                    [id] => 1
                    [user_id] => 5
                    [liked_by] => 1
                )

            [_custom_data:protected] => Array
                (
                )

            [_original:protected] => Array
                (
                    [id] => 1
                    [user_id] => 5
                    [liked_by] => 1
                )

            [_data_relations:protected] => Array
                (
                )

            [_original_relations:protected] => Array
                (
                )

            [_reset_relations:protected] => Array
                (
                )

            [_view:protected] => 
            [_iterable:protected] => Array
                (
                )

        )

    [2] => Model_Like Object
        (
            [_is_new:protected] => 
            [_frozen:protected] => 
            [_data:protected] => Array
                (
                    [id] => 2
                    [user_id] => 5
                    [liked_by] => 2
                )

            [_custom_data:protected] => Array
                (
                )

            [_original:protected] => Array
                (
                    [id] => 2
                    [user_id] => 5
                    [liked_by] => 2
                )

            [_data_relations:protected] => Array
                (
                )

            [_original_relations:protected] => Array
                (
                )

            [_reset_relations:protected] => Array
                (
                )

            [_view:protected] => 
            [_iterable:protected] => Array
                (
                )

        )

    [4] => Model_Like Object
        (
            [_is_new:protected] => 
            [_frozen:protected] => 
            [_data:protected] => Array
                (
                    [id] => 4
                    [user_id] => 5
                    [liked_by] => 6
                )

            [_custom_data:protected] => Array
                (
                )

            [_original:protected] => Array
                (
                    [id] => 4
                    [user_id] => 5
                    [liked_by] => 6
                )

            [_data_relations:protected] => Array
                (
                )

            [_original_relations:protected] => Array
                (
                )

            [_reset_relations:protected] => Array
                (
                )

            [_view:protected] => 
            [_iterable:protected] => Array
                (
                )

        )

)

我只想显示一个匹配的结果。

<?php foreach ($user->likes as $likes): ?>
<?php if($likes['liked_by'] == $logged_in_user_id): ?>
     <?php echo "you like it" ?>
<?php else: ?>
    <?php echo "you dont like it" ?>
<?php endif; ?>
<?php endforeach; ?>

这样我得到以下结果

you like it  you dont like it    you dont like it

有没有只显示matchig结果?

4

3 回答 3

1

使用return;从循环中跳出的

<?php 
   $result = "you dont like it";
   foreach ($user->likes as $likes) {
     if($likes['liked_by'] == $logged_in_user_id) {
       $result = "you like it";
     }
   }
   echo $result;
?>
于 2012-11-18T16:01:48.453 回答
0

当你击中比赛时,你可以跳出循环。有多种方法可以实现这一点,从使用标志变量到破坏比赛的控制流。

于 2012-11-18T15:55:08.343 回答
0

或者,您可以过滤 likes 数组以仅包含用户的喜欢。之后,您只需获取该数组的第一个条目,即第一个“喜欢”。给你一个印象:

$likesOfUser = array_filter($user->likes, function($c) use ($logged_in_user_id)
{
    return $c['liked_by'] == $logged_in_user_id;
});

$like = array_shift($likesOfUser);

但这可能有点过头了,只有在您需要单独的数组中的喜欢时才推荐。

于 2012-11-18T16:04:19.180 回答