Сравнение двух строк, чтобы увидеть, есть ли соответствие шаблону

У меня есть два массива один вывод

$a = ( [0] => a [1] => b [2] => b [3] => a )

и другой вывод

$b = ( [0] => dog [1] => cat [2] => cat [3] => dog )

Как я могу сравнить шаблон в обоих массивах.

-2

Решение

<?php
$a = array( 0 => 'a' ,1 => 'b', 2 => 'b', 3 => 'a' );

$b = array( 0 => 'dog', 1 => 'cat' ,2 => 'cat' ,3 => 'dog' );
$flagA=0;
$flagB=0;

$pattern=array();
$i=0;
foreach ($a as $array){

if($array=='a'){
$pattern[$i]=1;
$flagA++;
}
else{
$pattern[$i]=0;
$flagB++;
}
$i++;
}

print_r($pattern);$flagarrayB=0;
$flagarrayC=0;

$testingPatern=array();
$i=0;
foreach ($b as $arrayB){

if($arrayB=='dog'){
$testingPatern[$i]=1;
$flagarrayB++;
}
else{
$testingPatern[$i]=0;
$flagarrayC++;
}
$i++;
}

print_r($testingPatern);

if(serialize($pattern) == serialize($testingPatern)){
echo "Patern is the same";
}
else{
echo "Patern is wrong";
}

if($flagA==$flagarrayB && $flagB==$flagarrayC){
echo "TRUE";
}
else
{
echo "FALSE";
}

Если вы попытаетесь изменить значение в массиве $ b, вы увидите, что вывод изменится

  • Я изменил свой код для работы с «шаблоном», а не только с внешним видом элементов. Мой предыдущий код, если в массиве $ b вы поменялись местами с помощью cat-dog, он вернул бы true. В этом он вернет, что шаблон неправильный. Я также сохраню свой предыдущий код на случай, если вы захотите использовать его таким образом.
1

Другие решения

Предполагая, что у вас есть эти три массива:

$a = array(0 => 'a',1 => 'b',2 => 'a',3 => 'b');
$b = array(0 => 'a',1 => 'b',2 => 'a',3 => 'b');
$c = array(0 => 'dog',1 => 'cat',2 => 'cat',3 => 'dog');

Вы сравниваете их значения с помощью == оператор

$a == $b; //return TRUE
$a == $c; //return FALSE

if($a == $b){//will return TRUE
//$a has the same values as $b
}
else{
//$a is different than $b
}
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector