【问题标题】:Compare two array and find match value and print比较两个数组并找到匹配值并打印
【发布时间】:2014-01-11 06:25:20
【问题描述】:

我有两个名为 $data$new_el 的数组,以及两个数组的两个 foreach 循环。下面是我的代码。

我想比较两个数组的 0 索引变量,因为两个数组都有相同的名称变量,它的 0 索引。我为 $data 数组中的变量值提供了一些条件。如果 $data 数组 0 索引变量为 0,那么它存储“ CJ",如果变量长度为 1,2 或 3,则分配 01,02,03 等。如果变量值为 11,12,则表示与来自服务器的两位数存储相同。并比较两个数组,如果两个数组 0 的索引值都匹配,则打印 1、2、3 等索引的所有值。

我尝试了很多,但找不到任何解决方案。请尽快提供帮助。

function curlUsingGet($url, $data)
{
  if(empty($url) OR empty($data))
  {
    return 'Error: invalid Url or Data';
  }

  $fields_string = '';
  foreach ($data as $key => $value) {
    $fields_string .= $key . '=' . urlencode($value) . '&';
  }
  rtrim($fields_string,'&');

  $urlStringData = $url.'?'.$fields_string;
  $_SESSION['urlStringData'] = $urlStringData;
  $cookie = "cookie.txt";
  $ch = curl_init();

  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,0);
  curl_setopt($ch, CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0;
    Windows NT 6.1)");          
  curl_setopt($ch, CURLOPT_COOKIESESSION,true);
  curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
  curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
  curl_setopt($ch, CURLOPT_FRESH_CONNECT,true);
  curl_setopt($ch, CURLOPT_URL,$urlStringData);

  $return = curl_exec($ch);
  $arrele = explode('|',$return);

  foreach ($arrele as $val) {
    $num = 0;

    $new_el = explode('~',$val);
    $crt = $new_el[0];
    if ($crt == '0') {
      echo $crt = "CJ";
    } elseif (strlen($crt) == 1) {
      echo $crt = sprintf($num,$crt);
    } else {
      echo $crt;
    }
  } 
  $_SESSION['court'];
  $courtone = explode(',', $_SESSION['court']);
  $len = count($courtone);
  if ($len < 2) {
    echo "Invalid data from server";
  }
  $courtstring = $courtone[0];
  $_SESSION['courtnewdate'] = $courtone[1];


  $courtnew = explode('~',$courtstring);
  foreach ($courtnew as $val) {
    $data = explode('@@',$val);
    $data[0];
  }

  curl_close($ch);
}

$data = array('u' => $_SESSION['councel']);
echo curlUsingGet('http://"url":8080/causelist/CauseListData', $data);

【问题讨论】:

  • 在我看来,这个问题与 curl、foreach、PHP 或数组几乎没有关系。您只是要求我们调试一段混淆代码。我非常怀疑这个答案会对除你之外的任何人有所帮助,所以我会传递这个答案。

标签: php arrays curl foreach


【解决方案1】:

问题很长,不容易理解。 您可以将数组与函数 array_diff 进行比较。请检查链接。 http://in2.php.net/array_diff

【讨论】:

    【解决方案2】:

    这可能会有所帮助,假设我需要找到两个数组 $a 和 $b 之间的匹配,array_intersect() 函数可以用于此

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

    上面会找到在 $a 和 $b 中的共同元素

    $array1 = array(2, 4, 6, 8, 10, 12);
    $array2 = array(1, 2, 3, 4, 5, 6);
    
    print_r(array_intersect($array1, $array2));
    

    上面会输出为

    Array ( [0] => 2 [1] => 4 [2] => 6 ) 
    

    【讨论】:

    • 我希望匹配的元素不一样。
    猜你喜欢
    • 2021-11-02
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    相关资源
    最近更新 更多