2012-11-18 165 views
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 

有沒有去,只顯示結果相配套?

+1

你確定你想用這種方式使用php標籤('')?爲什麼? – arkascha

回答

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; 
?> 
+0

奇怪的是,如果我這樣做,如果它有一個像它打破了整個頁面沒有任何網頁內容顯示只是你喜歡它,如果沒有匹配的內容是好的,但不顯示回聲「你不喜歡它「字符串 – Side

+0

和你想要什麼?只有一個結果?喜歡它/不喜歡它? – vlcekmi3

+0

會喜歡它,喜歡它,不喜歡它 – Side

0

當你打比賽時,你可以跳出循環。有多種方法可以實現這一點,從使用標記變量來打破對比賽的控制流程。

0

或者跳出來,你可以過濾喜歡陣列只包含用戶的喜歡。之後,你只需要獲取該數組的第一個條目,這是第一個「like」。爲了給你一個印象:

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

$like = array_shift($likesOfUser); 

但是,這也許是有點潔癖,只推薦,如果你需要喜歡反正在一個單獨的陣列。