PHP Array_Intersect () - nasıl farklı ele?

2 Cevap php

Ben temelde çeşitli sayılar ve tamsayılar başka bir dizi dize temsilini zerofilled değerlerin bir dizi var ise, () hala farklı unsurları maç array_intersect olacak?

Örneğin, bu işi olur:

$arrayOne = array('0003', '0004', '0005');
$arrayTwo = array(4, 5, 6);

$intersect = array_intersect($arrayOne, $arrayTwo);

// $intersect would then be = "array(4, 5)"

... Ve değilse, bu ne gerçekleştirmek için en etkili yol olacaktır? Sadece döngü ve sonrası) (karşılaştırma, veya döngü yoluyla ve tamsayılar için her şeyi dönüştürmek ve Array_Intersect çalıştırmak, ya da ...

2 Cevap

$ Cat> dnm.php

<?php
$arrayOne = array('0003', '0004', '0005');
$arrayTwo = array(4, 5, 6);

$intersect = array_intersect($arrayOne, $arrayTwo);

print_r($intersect );

?>

$ Php test.php

Array ( )

$

Yani hayır, böyle olmaz. Ama eklerseniz

foreach($arrayOne as $key => $value)
{
   $arrayOne[$key] = intval($value);
}

Alacağınız

$ Php test.php

Array ( [1] => 4 [2] => 5 )

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

Note:  Two elements are considered equal if and only if
(string) $elem1 === (string) $elem2.
In words: when the string representation is the same.

Sizin örnekte, $ boş bir dizi olacak kesişir çünkü 5! == "005" ve 4! == "004"