【问题标题】:Check if a value exists in array (Laravel or Php)检查数组中是否存在值(Laravel 或 Php)
【发布时间】:2016-05-10 21:32:54
【问题描述】:

我有这个数组:

$list_desings_ids = array('hc1wXBL7zCsdfMu','dhdsfHddfD','otheridshere');

用 die() + var_dumo() 这个数组返回我:

array:2 [▼
  0 => "hc1wXBL7zCsdfMu"
  1 => "dhdsfHddfD"
  2 => "otheridshere"
]

我想检查 $list_desings_ids 数组中是否存在 design_id。

例如:

foreach($general_list_designs as $key_design=>$design) {
    #$desing->desing_id return me for example: hc1wXBL7zCsdfMu
    if(array_key_exists($design->design_id, $list_desings_ids))
    $final_designs[] = $design;
}

但这对我不起作用,正确的方法是什么?

【问题讨论】:

  • 使用 in_array() 函数而不是 array_key_exists ...因为您的 $list_designs_ids 数组未根据您的描述声明为键和值对。

标签: php arrays laravel


【解决方案1】:

您可以为此使用in_array

试试

$design_id = 'hc1wXBL7zCsdfMu';
$list_desings_ids = array('hc1wXBL7zCsdfMu','dhdsfHddfD','otheridshere');

if(in_array($design_id, $list_desings_ids))
{
  echo "Yes, design_id: $design_id exits in array";

}

【讨论】:

    【解决方案2】:

    而不是 array_key_exists 你只需输入 in_array 这将解决你的问题 因为如果你转储你的这个数组

    $list_desings_ids = array('hc1wXBL7zCsdfMu','dhdsfHddfD','otheridshere');
    

    输出将是,

    array(
       0 => hc1wXBL7zCsdfMu,
       1 => dhdsfHddfD,
       2 => otheridshere
    )
    

    所以你的代码array_key_exists 将不起作用,因为这里的键0,1,2 存在,所以,你想检查值,所以对于值,只需这样做in_array 它会在你提到的中搜索你想要的值/创建数组

    【讨论】:

      【解决方案3】:

      您的数组没有键。
      试试这个

      foreach($general_list_designs as $key_design=>$design) {
             #$desing->desing_id return me for example: hc1wXBL7zCsdfMu
             if(in_array($design->design_id, $list_desings_ids))
             $final_designs[] = $design;
       }
      

      【讨论】:

        【解决方案4】:

        您只需要更改您的条件替换为该代码

        if(in_array($design->design_id, $list_desings_ids))
        

        【讨论】:

          【解决方案5】:
          use Illuminate\Support\Collection;
          

          先导入上面的类,然后写下面的代码

           $list = new Collection(['hc1wXBL7zCsdfMu', 'dhdsfHddfD', 'otheridshere']);
                      $id = 'hc1wXBL7zCsdfMu';
                      if ($list->contains($id)) {
                          //yes: $id exits in array
                      }
          

          【讨论】:

            猜你喜欢
            • 2020-08-03
            • 2016-06-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多