【问题标题】:Difference between two arrays containing numbers as string包含数字作为字符串的两个数组之间的差异
【发布时间】:2015-08-18 19:02:30
【问题描述】:

我有一个关于比较两个(文本)数组的问题。我从一个包含数字的循环中获得了两个数组,如下所示:

array(96) { [1]=> string(2) "20" [2]=> string(2) "18" [3]=> string(2)...
array(96) { [1]=> string(3) "135" [2]=> string(3) "103" [3]=> string(2) "88"

我想要的是一个包含不同值 (1-2) 的新数组。这意味着上面的 2 个数组将产生以下新的(文本)数组

array(96) { [1]=> string(3) "-115" [2]=> string(3) "-85" [3]=> string(2) 

有人可以帮我吗?

【问题讨论】:

  • 你试过了吗?
  • 尝试使用array_map

标签: php arrays string difference


【解决方案1】:

你可以用一个foreach-loop 来做到这一点。然后将它们相互减去。您只需要 $array$array2 中相同数量的元素。

$new = array();
foreach($array as $key => $val) {
    $new[] = (string) ($val - $array2[$key]);
}

如果值是否为整数无关紧要,您可以删除类型转换(string)

【讨论】:

    【解决方案2】:

    这是一个函数,

    function foo($array1, $array2){
    $resultArray = array();
    for($i=0; i<count($array1); $i++){
    $resultArray[] = (string)((int)$array1[$i] - (int)$array2[$i]);
    }
    return $resultArray;
    }
    

    【讨论】:

      【解决方案3】:

      希望这会有所帮助:)

      <?php
      
          $a=array(20,18);
          $b=array(135,103);
      
          function fr($d,$d1){    
              global $c;
              $c[]=$d-$d1;
          }
      
          array_map('fr',$a,$b);
      
          var_dump($c);
      

      【讨论】:

        猜你喜欢
        • 2012-03-10
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多