【问题标题】:Find element in Laravel object在 Laravel 对象中查找元素
【发布时间】:2014-10-01 14:05:16
【问题描述】:

下面是我的 laravel 对象的输出...

$my_array = Array( [0] => stdClass Object ( [From] => name1 [To] => name12 [Message] => hey) [1] => stdClass Object ( [From] => name13 [To] => name143 [Message] => byeeeeee)

我需要在不使用foreach loop 的情况下查找name12 是否存在...我该怎么做?我已经尝试过...

if (in_array('name12', $my_array)) {
    echo "Match found";
}
else {
    echo "Match not found";
}

无论如何要解决这个问题?

【问题讨论】:

  • 比较一个字符串和一个对象不太可能给你一个匹配;您应该与对象的属性进行比较
  • 是的@MarkBaker 是对的,还有一件事是in_array 仅适用于一维数组。对于多维搜索,需要遍历它然后检查in_array

标签: php arrays laravel laravel-4 laravel-3


【解决方案1】:
if count(
    array_filter(
        $my_array,
        function($value) {
            return $value->From == 'name12';
        }
    ) > 0) {
    echo "Match found";
} else {
    echo "Match not found";
}

【讨论】:

    【解决方案2】:

    数组中有两个对象和前两个键:

    $my_array[0] 和 $my_array[1]

    如果您确定知道数组中的项目数,那么您可以执行以下操作:

    if(
    $my_array[0]->From === 'name12' ||
    $my_array[0]->To === 'name12' ||
    $my_array[1]->From === 'name12' ||
    $my_array[1]->To === 'name12'
    ){
      echo "Match found";
    } else{
      echo "Match not found";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多