2014-01-11 3 views
0

У меня есть два массива с именем $data и $new_el и два foreach петли для двух массивов. Ниже мой код.Сравните два массива и найдите совпадающее значение и напечатайте

Я хочу сравнить оба массива с его индексной переменной 0, потому что оба массива с одинаковой переменной имени имеют индекс 0 index.i, дают некоторое условие для значения переменной в массиве $ 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); 
+0

Как я вижу, этот вопрос имеет мало общего с curl, foreach, PHP или массивами. Вы просто просите нас отладить часть запутанного кода. Я очень сомневаюсь, что ответ поможет никому, кроме вас, поэтому я передам это. –

ответ

0

Вопрос длинный и непростой для понимания. вы можете сравнить массив с функцией array_diff. Проверьте ссылку. http://in2.php.net/array_diff

0

Это может помочь, позволяет сказать, что мне нужно найти соответствие между два массива $ а и $ Ь, то 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) 
+0

Я хочу, чтобы соответствующий элемент не отличался. – user3181994

+0

Теперь я обновил ответ. –

Смежные вопросы