【问题标题】:Php array_intersect output [duplicate]Php array_intersect输出[重复]
【发布时间】:2016-07-22 03:19:57
【问题描述】:

我对数组的工作方式有疑问。

$a = array("24","33","12");
$b = array("24","12");

$c = array_intersect($a,$b);

echo json_encode($c);

// {"0":"24","2":"12"}

我希望输出是这样的:

// ["24","12"]

我怎样才能实现这个输出?

【问题讨论】:

    标签: php arrays array-intersect


    【解决方案1】:
    echo json_encode(array_values($c));
    
    output
    
    ["24","12"]
    

    【讨论】:

      【解决方案2】:

      array_intersect 计算数组的交集

      <?php
      
      $array1 = array(2, 4, 6, 8, 10, 12);
      $array2 = array(1, 2, 3, 4, 5, 6);
      
      var_dump(array_intersect($array1, $array2));
      var_dump(array_intersect($array2, $array1));
      
      ?>
      

      将产生

      array(3) {
        [0]=> int(2)
        [1]=> int(4)
        [2]=> int(6)
      }
      
      array(3) {
        [1]=> int(2)
        [3]=> int(4)
        [5]=> int(6)
      }
      

      json_encode 返回包含值的 JSON 表示形式的字符串。例如

      <?php
      $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
      
      echo json_encode($arr);
      ?>
      

      会输出

      {"a":1,"b":2,"c":3,"d":4,"e":5}
      

      正如 mamta 回答的那样,您可以使用 array_values 返回数组的所有值并像 json_encode 一样对其进行编码 回声json_encode(array_values($c))

      【讨论】:

      • 注意!感谢您的信息。
      猜你喜欢
      • 1970-01-01
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 2014-06-21
      • 2019-02-28
      相关资源
      最近更新 更多