比较两个数组并找到匹配值并打印

时间:2014-01-11 06:25:20

标签: php arrays curl foreach

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

我想比较两个数组的0索引变量,因为两个数组具有相同的名称变量,其中0索引.i为$ data array.like中的变量值提供了一些条件,如果$ data array 0 index variable为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);

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这可能会有所帮助,假设我需要找到两个数组$ 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 )