PHP

2013-07-15 16 views
10

iki farklı dizilerden ortak değerleri almak için nasıl bazı kullanıcı kimliği ile iki diziler varPHP

$array1 = array("5","26","38","42"); 

$array2 = array("15","36","38","42"); 

$array3 = array(0=>"38", 1=>"42"); 
şöyle i, ben diziden ortak değerleri ihtiyaç olduğunu gerekenler

array_intersect()'u denedim. Minimum yürütme süresine sahip bir yöntem almak istiyorum. Lütfen bana arkadaş edin.

+5

'array_intersect()' hala en iyi seçenektir. –

+0

http://php.net/manual/en/function.array-intersect.php –

+3

'array_intersect' ile ilgili sorun nedir? Çok yavaş olamaz mı? – deceze

cevap

23

Yerel PHP işlevleri kendi algoritmanızı oluşturmaya çalışmaktan daha hızlıdır.

$result = array_intersect($array1, $array2); 
1

bu bir, bu belki uzun bir yöntemle olsa Kullan:

$array1 = array("5","26","38","42"); 

$array2 = array("15","36","38","42"); 

$final_array = array(); 

foreach($array1 as $key=>$val){ 
    if(in_array($val,$array2)){ 
     $final_array[] = $val; 
    } 
} 

print_r($final_array); 

Sonuç: Array ([0] => 38 [1] => 42)

+1

, cevabınızın array_intersect üzerinden daha iyi bir seçim yapmasının nedenini önerebilir misiniz? – Sir

1

Sana don düşünüyorum() sadece çalışıyor

<?php 
$array1 = array("5", "26", "38", "42"); 
$array2 = array("15", "36", "38", "42"); 

foreach ($array1 as $value) { 
    if (in_array($value, $array2)) { 
     $array3[] = $value; 
    } 
} 

print_r($array3); 
?> 
0

array_intersect: o kadar da bu cevabı kontrol sorununuza $key=>$value kullanmak gerekir.

dizi array_intersect (dizi $ dizi1, array $ dizi2 [, array $ ...] )

$array1 = array("5","26","38","42"); 

$array2 = array("15","36","38","42"); 

echo array_intersect($array1, $array2); 

http://fr2.php.net/array_intersect