【问题标题】:How to Cross check one array values into another associative multidimensional Array如何将一个数组值交叉检查到另一个关联多维数组中
【发布时间】:2021-08-11 04:25:33
【问题描述】:

我正在尝试显示 subject list 并带有另一个数组中存在的复选标记值 这里我有一个数组:subject list (name $fetchSubject)

> Array ( [0] => Array ( [sub_id] => 1 [sub_name] => Mathematics ) [1]
> => Array ( [sub_id] => 2 [sub_name] => Physics ) [2] => Array ( [sub_id] => 3 [sub_name] => Chemistry) [3] => Array ( [sub_id] => 4
> [sub_name] => Biology ) [4] => Array ( [sub_id] => 5 [sub_name] =>
> Science ))

另一个存储用户选择列表的数组 (name $job_sub)

Array ( [0] => Array ( [sub_id] => 5 ) [1] => Array ( [sub_id] => 7 ) [2] => Array ( [sub_id] => 8 ) [3] => Array ( [sub_id] => 9 ))

HTML

<select name="subjects[]" id="subject" class="form-control selectpicker " title="Select Subject" data-live-search="true" multiple="multiple">
                         <?php echo '<option value=""> Select Subjects</option>'; ?>
                        <?php
                                       foreach($fetchSubject as $sub)
                                       {
                                           if(in_array($sub['sub_id'],$job_sub))
                                           {
                                               echo '<option value="'.$sub['sub_id'].'" selected>'.$sub['sub_name'].'</option>';
                                           }else{
                                               echo '<option value="'.$sub['sub_id'].'" >'.$sub['sub_name'].'</option>';
                                           }
                                           unset($sub);    
                                       }

                                      ?>
                     </select>

整个场景是我试图以更新形式显示用户数据,这就是为什么我需要标记用户之前插入的数据

【问题讨论】:

  • $sub 数组中存储了什么?
  • @user3772091 我是说 $sub 数组 ($job_sub) 有一个用户数据,我正在尝试交叉检查
  • 好的,我明白了。您的 $job_sub 数组是多维数组。你的 in_array() 代码可能没有像你想象的那样处理。
  • @user3772091 是的,你明白了..
  • 我已经更新了你的代码。让我知道它是否有效

标签: php multidimensional-array associative-array


【解决方案1】:

in_array 操作没有获取值,因为 '$job_sub' 是一个多维数组。 我已经更新了你的代码。让我知道它是否有效。

foreach($fetchSubject as $sub)
{
$dis =  '<option value="'.$sub['sub_id'].'">'.$sub['sub_name'].'</option>';
foreach($job_sub as $sub2) 
{                                          
if(in_array($sub['sub_id'],$sub2))
{
 $dis = '<option value="'.$sub['sub_id'].'" selected>'.$sub['sub_name'].'</option>'; 
 break;
}
}
 $echo $dis
}

【讨论】:

  • NO NO,看看 $fetch_Subject 的 index[1] 是否在 $job_sub 的 index[3] 处,那么它将丢失。 [检查条件,你会明白我在说什么]
  • 我已经更新了我的代码。让我知道它是否有效。
猜你喜欢
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多