【问题标题】:Search for a given value inside unserialized array in php在php中的未序列化数组中搜索给定值
【发布时间】:2020-06-30 18:41:49
【问题描述】:

我有一个未序列化的序列化数组,但我想搜索该数组中是否存在给定值,我未序列化的数组结构如下:

Array
(
    [0] => Array
        (
            [slot_id] => 1
            [day] => Mon
        )

    [1] => Array
        (
            [slot_id] => 2
            [day] => Wed
        )

    [2] => Array
        (
            [slot_id] => 3
            [day] => Thu
        )

    [3] => Array
        (
            [slot_id] => 4
            [day] => Fri
        )

)

我在这里有一个循环,我正在获取其他数据

<?php 
  foreach($class_s as $slot){
  $data=$this->manage_model->myfunction();
  $search_array=unserialize($data);
  // I want to check here if $slot->id exist in $search_array and $slot->day exist in $search_array
  {
  }
}
?>

请帮助解决我的问题。

【问题讨论】:

    标签: php codeigniter codeigniter-3 codeigniter-2


    【解决方案1】:

    使用array_key_exists 检查您的数组中是否存在密钥。

    这里我使用foreach遍历数组中的每个元素

    foreach ($search_array as $slot) {
      if (!array_key_exists('id', $slot) || !array_key_exists('day', $slot)) {
        // either id or day does not exist
      }
    }
    

    【讨论】:

    • 但我想检查值是否适用于值,即 day 和 slot_id 必须匹配
    • 这个细节根本不在你原来的问题中
    • 我已在我的问题中指定,请检查....该数组中是否存在给定值
    • 我的回答正是如此。 array_key_exists 如果给定值存在于该数组中,则为您提供真/假
    • 我已经实现了你的代码,但是如果块假设 slot_id =1 并且天是星期一,那么我想返回一些状态为 true 的标志。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 2012-05-17
    • 2010-10-08
    相关资源
    最近更新 更多