【问题标题】:search array in array and return key在数组中搜索数组并返回键
【发布时间】:2023-04-09 17:19:01
【问题描述】:

我有两个数组

1.$ids;

Array
(
    [0] => 2427975642
    [1] => 2397521678
)

2.$c

Array
(
    [48] => 2397521678
    [46] => 461
    [45] => 451
)

问题: 在 $c 中从 $ids 中搜索值并返回带有 id 的新数组。示例返回 48

【问题讨论】:

  • 请重新表述您的问题。真的很难看出你在问什么。
  • 您是否尝试通过它们的值组合/合并两个数组?后面的键应该覆盖前面的键吗?
  • 消除了合并,因为生成的表是数据库中要更新的条目标识符

标签: php arrays search


【解决方案1】:
$ids = array(   
    2427975642,
    2397521678
);



$c = array(
    48 => 2397521678,
    46 => 461,
    45 => 451
);

$common = array_keys(array_intersect($c, $ids));

print_r($common);

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:
          $ids= array
          (
              [0] => 2427975642
              [1] => 2397521678
          );
      
          $c =array
          (
              [48] => 2397521678
              [46] => 461
              [45] => 451
          );
      
      $res = array_intersect($ids,$c);
      $keys = array_keys($res);
      print_r($keys);
      

      【讨论】:

        【解决方案4】:
        $ids = array(   
            2427975642,
            2397521678
        );
        
        
        
        $c = array(
            48 => 2397521678,
            46 => 461,
            45 => 451
        );
        
        $finalArray = array();
        
        foreach ( $c as $key=>$val)
        {
        
        if ( array_search($val,$ids))
        {
        
        $finalArray[]=$key;
        
        }
        
        }
        

        【讨论】:

        • $results = array(); foreach($ids as $val) foreach($c as $key=>$val2) if($val == $val2) array_push($results, $key); // 或者只获取第一个, // 将 if 语句替换为 // // if($val == $val2) { // $result = $key; // 中断 2; // } print_array($results);
        猜你喜欢
        • 2012-01-15
        • 2014-04-16
        • 2014-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多