Их нужно преобразовать в строку
по идее должно выдать два совпадение (5,6)
как реализовать задачу
$intersection = array_intersect_assoc($m, $m1);
$intersectionString = implode(",", $intersection);
Смысл задачи в том, чтобы сравнивать в строке.
На совпадение нужно проверять только ячейки массива.
Сравнивать все равно необходимо элементы массива. Зачем это делать в строке?
Вы имеете ввиду, что надо срванивать не только значения, но и ключи массива?
function compareArraysAsStrings(array $arr1, array $arr2) {
$str1 = implode('', $arr1);
$str2 = implode('', $arr2);
$longestStr = strlen($str1)>strlen($str2) ? $str1 : $str2;
$intersection = [];
for($i=0; $i<strlen($longestStr); $i++) {
if ($str1[$i] === $str2[$i]) {
$intersection[] = $str1[$i];
}
}
return $intersection;
}
function compareArraysAsStrings(array $arr1, array $arr2) {
$longestArr = count($arr1)>count($arr2) ? $arr1 : $arr2;
$intersection = [];
for($i=0; $i<count($longestArr); $i++) {
if ($arr1[$i] === $arr2[$i]) {
$intersection[] = $arr1[$i];
}
}
return $intersection;
}
intersection = array_intersect_assoc($m, $m1);
<?php
$m = array(
'0' => '4',
'1' => '5',
'2' => '6',
'3' => '7',
'4' => '8');
$m1 = array(
'0' => '1',
'1' => '5',
'2' => '6',
'3' => '8',
'4' => '9');
$c = 0;
foreach ($m as $key => $value) {
$key=(string)$value;
}
foreach ($m1 as $key => $value) {
$key=(string)$value;
}
while ($c < 5) {
if ($m1[$c] == $m[$c]){
echo $m1[$c];
echo " ";
}
$c++;
}
?>
$stringifiedm = array_map("strval", $m);
$stringifiedm1 = array_map("strval", $m);
$intersection = array_intersect_assoc($stringifiedm , $stringifiedm1);
function compareArrayValuesAsStrings(array $arr1, array $arr2) {
$longestArr = count($arr1)>count($arr2) ? $arr1 : $arr2;
$intersection = [];
for($i=0; $i<count($longestArr); $i++) {
if ((string)$arr1[$i] === (string)$arr2[$i]) {
$intersection[] = $arr1[$i];
}
}
return $intersection;
}
foreach ($m as $key => $value) {
$key=(string)$value;
}
$m = array(4,5,6,7,8);
foreach ($m as $key => $value) {
$key=(string)$value;
}
var_dump($m);
array(5) {
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
[3]=>
int(7)
[4]=>
int(8)
}
foreach ($m as &$value) { // обратите внимание на символ "&" перед переменной
$value=(string)$value;
}
$m = array_map("strval", $m);